invariance
Vladislav
именно
вот только смысл, сократить 5 символов, проверка все рано нужна, Call to a member function delete() on null
Vladislav
invariance
invariance
компренде?
Andrey
company()->delete()
invariance
у тебя метод просто не запустится, если мидлвейр заблочит неавторизованного юзера
Andrey
после company скобки поставь, да
Vladislav
invariance
а че тут пояснять
Andrey
Без скобок тебе возвращается коллекция, результат запроса
Vladislav
invariance
типо того
Andrey
А со скобками - возврщается QueryBuilder, и дальше с этим запросом можно работать - удалять, создавать и т/д/ записи
invariance
только мидлвейры желательно в роутере прописывать, что бы у тебя централизованно все это хранилось
invariance
сработало, а поясните?
функцонал построен на вызове __call() а не на __get() - гугли магические методы
Andrey
Чо мы тут о разном говорим, ну да ладно
Vladislav
Andrey
invariance
ну он спросил почему там скобки
Vladislav
Route::prefix('users')->group(function() {
Route::get('/', 'UserController@index')->name('home');
Route::get('/company/delete', 'UserController@deleteCompany');
Route::get('/confirmation/{token}','Auth\RegisterController@confirmation')->name('confirmation');
invariance
я ответил
Andrey
$user->company и $user->company() разные штуки возвращает
invariance
ну вот тем-более
Vladislav
Andrey
Ну ты не на тот вопрос ответил по сути
invariance
invariance
внутри то это через магические методы работает
Andrey
Нет же. ты ответил на вопрос "как это сделано, что можно скобки а можно нет"
Andrey
а вопрос был о том, почему без скобок удаление не получалось
invariance
разные магические методы потому что вызываются 🤗
Vladislav
user()->company()->delete();
Vladislav
Call to undefined function App\Http\Controllers\company()
invariance
😂
Andrey
Тут дело именно в том, что возвращает метод
Andrey
ну комон
invariance
Andrey
invariance
где?
когда он вместо company вызывает company()
invariance
разные действия происходят
invariance
следовательно магические методы выполняют разные функции
Vladislav
Andrey
Так то да, но к контексте вопроса - важно, что возвращается, а не то, какой магический метод используется
invariance
важно в общем то все)
Andrey
Слишком общий ответ. Так можно на простой вопрос и лекцию на пару часов прочитать. Но зачем.
invariance
мм
invariance
он спросил, почему там скобки нужны, я ответил, потому что магические методы разные вызываются
Vladislav
$user = Auth::user();
$user->company()->delete();
invariance
очевидно, что они разные результаты возвращают, раз одно работает, а другое нет
Andrey
Я не буду с тобой спорить
invariance
сам начал
invariance
)
Andrey
Для меня очевидно, что ему надо было понять, почему без скобок не работает delete
Vladislav
Как $user тогда на все function распространить
Vladislav
$user = Auth::user();
$user->company()->delete();
Vladislav
А то так везде лупить пока только
Andrey
И ответ не в том, что другой маг. метод, а в том, что возврщается другое значение
invariance
Andrey
invariance
это один объект
invariance
смотри
Andrey
смотрю
invariance
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
$request->user = Auth::user();
return $next($request);
}
}
invariance
$request->user = Auth::user(); вот такую строчку добавь и усе
invariance
это тот самый мидлвейр
Andrey
а, ну вариант. Хотя я бы middleware для этого не пользовал наверн
Andrey
И это будет работать? Надо посмотреть
invariance
Vlad а потом делаешь такое в контроллере своем
function deleteUserCompanies(Request $request) {
$request->user->company()->delete();
}
invariance
Vladislav
invariance
но потом вроде передалал на композицию как то
Andrey
Ясн. Ну мне как-то это не очень нравится, в middleware определять юзера да еще и в request его пихать
Vladislav
ясно, я сейчас в ступоре что у меня это мидла вообще нет
invariance
invariance
удалил наверное?
Anonymous
А зачем делать $request->user = Auth::user(); почему просто сразу не использовать Auth::user()?