Надо, что бы, когда пользователь добавился в таблицу, сразу после этого, ещё добавилась запись в другую таблицу. Делаю так PHP: protected function create(array $data) { $newUser = User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); DB::table('city_user')->insert( [ 'user_id' => $newUser->id, 'city_id' => 4400, ]); } Выводит ошибку Код (Text): Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, null given, called in C:\OSPanel\domains\prorab\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php on line 35 В гугле это ошибка, есть, но там другая ситуация.
https://laracasts.com/discuss/chann...atable-instance-of-httpredirectresponse-given --- Добавлено --- https://laravel-news.com/laravel-model-events-getting-started
попробуй прочитать текст ошибки. я уверен, твоё дбавление чего-то куда-то здесь абсолютно не при чём. у тебя класс не выполняет взятые на себя обязательства по контракту. --- Добавлено --- раз это "модернизация регистрации", видимо был момент когда всё работало. вернись к нему, потом изменяй помалу и проверяй работу после каждого мелкого шага. так найдешь где косяк.
@artoodetoo убираю этот код и всё работает, без ошибок PHP: DB::table('city_user')->insert( [ 'user_id' => $newUser->id, 'city_id' => 4400, ]);
@Dimon2x разберись с интерфейсами. @mkramer уже ответил. Плюс ссылки глянь. Лично я бы делал на евентах PHP: public static function boot() { parent::boot(); static::created(function($model) { // dd($model->id); }); } Ну а простой способ просто добавь в конце return $newUser
PHP: /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data)
вот что говорит поциент если тупо убрать код, как Димон говонит, ничего не должно измениться, как был null так и остался null имхо пи3дит --- Добавлено --- @mkramer я пока надеюсь научить его читать.
@Dimon2x, ну а записанного в переменную юзера ты возвращать не умеешь? Твоя проблема - ты не зная на достаточном уровне PHP и программирования в целом пытаешься писать c ларкой чего-то
@mkramer я заметил, то, что после регистрации, автоматически происходит авторизация, наверно для этого и надо возвращать? --- Добавлено --- @mkramer сложно одному учиться, думаю на работе было бы проще --- Добавлено --- Свершилось чудо, у меня получилось PHP: $newUser = User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); DB::table('city_user')->insert( [ 'user_id' => $newUser->id, 'city_id' => 4400, ]); return $newUser;
Я тебя разочарую, никто на таком уровне с тобой возиться не будет. --- Добавлено --- Именно так. Если это поведение нужно изменить, то надо перекрыть соответствующие методы стандартных трейтов
Вам суперстарам легко говорить.. Ну по крайней мере он уже пытается гуглить. А вообще пока англ не будет программистом не стать.