我有一个与 Profile 对象具有一对多关系的 User 对象。我需要配置文件对象的字段才能在网页上动态显示它的变量。即有多少“帖子”,他们的“描述”等。几天前我遇到了一些关于此检索的问题。自然地认为这是一个前端错误,我尝试添加'@'标签-但是,这似乎只是抑制了被标记的错误,并没有解决问题。因此,我决定检查是否在使用编辑个人资料页面并填写字段并“保存”时,是否在后端更新了字段:这不起作用,并且修补程序标记了附加的错误。
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 中的更新函数 (注意“profile”属性带有黄色下划线)
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'
User 类中的 Profile 方法:
public function profile()
{return $this->hasOne(Profile::class);}
Profile类中的用户方法:
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:我认为如果我删除“@”标签并导航到索引页面(在“ html 中用户对象属性的动态调用”下),显示会发生什么也会很有帮助。
编辑 2:添加了更多信息。
这是我的第一篇文章,所以我希望它的格式正确。感谢任何级别的输入。