validate([
'name' => 'required',
'email' => 'required|email|unique:users',
'phone' => 'required',
'country' => 'required',
'address' => 'required',
'state' => 'required',
'city' => 'required',
'zip' => 'required',
'password' => 'required',
'photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$final_name = 'user_'.time().'.'.$request->photo->extension();
$request->photo->move(public_path('uploads'), $final_name);
$obj = new User();
$obj->name = $request->name;
$obj->email = $request->email;
$obj->phone = $request->phone;
$obj->country = $request->country;
$obj->address = $request->address;
$obj->state = $request->state;
$obj->city = $request->city;
$obj->zip = $request->zip;
$obj->password = bcrypt($request->password);
$obj->photo = $final_name;
$obj->status = $request->status;
$obj->save();
return redirect()->route('admin_users')->with('success','User is Created Successfully');
}
public function user_edit($id)
{
$user = User::where('id',$id)->first();
return view('admin.user.user_edit',compact('user'));
}
public function user_edit_submit(Request $request, $id)
{
$obj = User::where('id',$id)->first();
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email,'.$id,
'phone' => 'required',
'country' => 'required',
'address' => 'required',
'state' => 'required',
'city' => 'required',
'zip' => 'required',
]);
if($request->hasFile('photo'))
{
$request->validate([
'photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
unlink(public_path('uploads/'.$obj->photo));
$final_name = 'user_'.time().'.'.$request->photo->extension();
$request->photo->move(public_path('uploads'), $final_name);
$obj->photo = $final_name;
}
if($request->password != '')
{
$obj->password = bcrypt($request->password);
}
$obj->name = $request->name;
$obj->email = $request->email;
$obj->phone = $request->phone;
$obj->country = $request->country;
$obj->address = $request->address;
$obj->state = $request->state;
$obj->city = $request->city;
$obj->zip = $request->zip;
$obj->status = $request->status;
$obj->save();
return redirect()->route('admin_users')->with('success','User is Updated Successfully');
}
public function user_delete($id)
{
$total = Review::where('user_id',$id)->count();
if($total > 0)
{
return redirect()->back()->with('error','User can not be deleted because it has some reviews');
}
$total1 = Message::where('user_id',$id)->count();
if($total1 > 0) {
return redirect()->back()->with('error','User can not be deleted because it has some messages');
}
$total2 = Wishlist::where('user_id',$id)->count();
if($total2 > 0) {
return redirect()->back()->with('error','User can not be deleted because it has some wishlist');
}
$total3 = Booking::where('user_id',$id)->count();
if($total3 > 0) {
return redirect()->back()->with('error','User can not be deleted because it has some bookings');
}
$obj = User::where('id',$id)->first();
unlink(public_path('uploads/'.$obj->photo));
$obj->delete();
return redirect()->route('admin_users')->with('success','User is Deleted Successfully');
}
public function message()
{
$messages = Message::with('user')->get();
return view('admin.user.message', compact('messages'));
}
public function message_detail($id)
{
$message_comments = MessageComment::where('message_id',$id)->orderBy('id','desc')->get();
return view('admin.user.message_detail', compact('message_comments','id'));
}
public function message_submit(Request $request,$id)
{
$obj = new MessageComment();
$obj->message_id = $id;
$obj->sender_id = 1;
$obj->type = 'Admin';
$obj->comment = $request->comment;
$obj->save();
$message_link = route('user_message');
$subject = 'Admin Message';
$message = 'Please click on the following link to see the new message from the admin:
Click Here';
$message_data = Message::with('user')->where('id',$id)->first();
$user_email = $message_data->user->email;
\Mail::to($user_email)->send(new Websitemail($subject,$message));
return redirect()->back()->with('success', 'Comment added successfully');
}
}