(Ремесленник) Тинкер не позволяет мне получить доступ к таблице профилей со стороны сервера - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть объект User, который имеет отношение один ко многим с объектом Profile. Мне требуются поля объекта профиля для динамического отображения его переменных на веб-странице. т.е. сколько «постов», их «описание» и т. д. c. Я столкнулся с некоторыми проблемами, связанными с этим поиском, несколько дней назад. Естественно, думая, что это была внешняя ошибка, я попытался добавить теги '@' - однако, это, казалось, только подавляло помеченные ошибки и не решало проблему. Поэтому я решил проверить, если я использовал свою страницу редактирования профиля, заполнил поля и «сохранил», если на внутреннем торце поля были обновлены: это не сработало, и Тинкер пометил прикрепленную ошибку.

Dynami c вызов атрибутов пользовательских объектов в html:

<input  id="title"
type="text"
class="form-control
@error('title') is-invalid
@enderror"
name="title"
value="{{ old('title') ?? @$user->profile->title}}" required
autocomplete="title" autofocus>

Функция обновления в ProfilesController (обратите внимание, что «профиль» свойство выделено желтым цветом)

public function update(User $user)
    {$data = request()->validate([

            'title' => 'required',
            'description' => 'required',
            'url' => 'url',
            /*'image' => '', */


        ]);

       $user->profile->update($data);
       return redirect("/profile/{$user->id}");

    }

Обратите внимание: ошибка, помеченная как это 'Call to a member function update() on null'

Метод профиля в классе пользователя:

 public function profile()
        {return $this->hasOne(Profile::class);}

Метод пользователя в классе профиля:

 public function user()
    {return $this->belongsTo(User::class);}

и, наконец, ошибка помечается при использовании Tinkers all ();

>>> Profile::all();
[!] Aliasing 'Profile' to 'App\Profile' for this Tinker session.
=> Illuminate\Database\Eloquent\Collection {#3080
     all: [],
   }
>>>    

Удалена ошибка тегов '@':

Facade\Ignition\Exceptions\ViewException
Trying to get property 'title' of non-object (View: C:\Users\(PCNAMEfoo)\(PROJECTNAMEfoo)\resources\views\profiles\index.blade.php)

Редактировать 1: Я подумал, что было бы полезно показать, что произойдет, если я удалю теги '@' и перейду на страницу указателя (в разделе ' Dynami c вызов атрибутов пользовательских объектов в html').

Редактировать 2: добавить дополнительную информацию ред.

Это мой первый пост, поэтому я надеюсь, что он был отформатирован правильно. Спасибо за ЛЮБОЙ уровень ввода.

...