Как лучше всего создать папку с файлами для указанного пользователя в laravel? - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть простая панель инструментов, в которой пользователи могут регистрироваться и делать какие-то вещи, теперь я хотел бы создать файл с именем пользователя и его идентификатором; что-то вроде widget/obama2030.js в Laravel когда пользователь зарегистрирован

структура моего приложения:

myapp

-app
-bootstrap
-database
-resource
 .....
-widget
 -------

в моем контроллере регистрации пользователей, у меня есть следующее .

protected function create(array $data)
    {


        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            ]);

        File::makeDirectory('/widget/'.$user->name.Auth::user()->id, 0755, true);

        return $user;
    }

Теперь, когда пользователь нажимает кнопку регистрации, я получаю следующую ошибку

ErrorException (E_NOTICE)
Trying to get property of non-object

что не так с моим кодом ????

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

Вы создали пользователя, но не вошли в него как вновь созданный пользователь.

Таким образом, Auth::user() равно нулю, а (null)->id не будет работать.

После создания вашего пользователя, войдите в него:

Auth::login($user)

и ваш код должен работать.

Тем не менее, обычно нет необходимости (и это довольно грязно) на самом деле создавать файлы для каждого пользователя - вы почти наверняка сможете обработать это по маршруту Laravel.

0 голосов
/ 14 февраля 2020

Auth::user() ничего не возвращает, поэтому он вылетает при попытке доступа к ->id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...