Как в laravel сделать если не авторизован пользователь и вызвать Auth::user()->id; то возвращается ошибка Trying to get property of non-object как ее заменить на свое сообщение и редирект ? catch не отлавливаеться.
try{
$comment= new CommentNews();
$comment->text=$request->text;
$comment->user_id=Auth::user()->id;
$comment->public_id=$request->$p_id;
$comment->save();
return response()->json(['success'=>'Наш волонтер свяжется с Вами в ближайшее время! Благодарим за проявленный интерес']);
}
catch (Exception $exception) {
echo('error');die;
}
}
else{
return response()->json(['errors'=>$validator->errors()->all()]);
}
1) Проверку на авторизацию лучше делать через мидлвары. Готовый в Ларавел уже есть auth.
2) Если делать в лоб, то сначала проверяете наличие юзера, а потом уже достаете id.
if(!Auth::user()) throw new Exception("your message");
$comment->user_id=Auth::user()->id;
Но это плохой вариант, лучше через первый. Документация: https://laravel.com/docs/master/authentication
3) И да, это было не исключение, а ошибка, поэтому и не перехватывалось.
Предлагаю использовать middleware auth на ваш route.
Красиво, локанично и всем понятно.
Route::middleware(['auth'])->group(function () {
Route::get('/', function () {
// Uses first & second Middleware
});
});
Ещё один вариант использования.
Route::get('admin', function () {
//
})->middleware('admin');
Route::get('user/{id}', 'UserController@show')->middleware('admin');
Ссылка на документацию тык.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите, пожалуйста, есть ли возможность задать условие когда определенный атрибут данного товара равен чему-то, то вывести изображение,...
И выдает собака: ok ok ok ok ok ok ok ok ok ok ok ok ok okNONONONONONONONONONONO
Использую плагин ACF для настройки вывода пользовательского контента через произвольные поляПомогите, пожалуйста, с решением задачи — вывод...
Есть модель Invoice (счёт) с полем cost (цена)Если модель Payment, связанная с моделью Invoice полем invoice_id