当我要创建一个新用户时,会出现此类错误。并在图像链接上出现错误标记。如果我像$user->profile['avatar'])
一样更改图像路线,则可以使用,但是在查看页面中,它不会显示图像。
查看页面:
<tbody>
@if($users->count() > 0)
@foreach($users as $user)
<tr>
<td>
<img src="{{asset($user->profile->avatar)}}" width="60px" height="60px" style="border-radius: 50%;">
</td>
<td>
{{ $user->name }}
</td>
<td>
@if($user->admin)
<a href="{{route('user.not.admin',['id' => $user->id])}}" class="btn btn-sm btn-outline-danger">Remove permission</a>
@else
<a href="{{route('user.admin',['id' => $user->id])}}" class="btn btn-sm btn-outline-primary">Make admin</a>
@endif
</td>
<td>
delete
</td>
</tr>
@endforeach
@else
<tr>
<th colspan="5" class="text-center">No users available!</th>
</tr>
@endif
</tbody>
</table>
控制器功能:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required',
'email' => 'required|email'
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt('password')
]);
$profile = Profile::create([
'user_id' => $user->id,
'avatar' => 'uploads/avatars/1.png'
]);
Session::flash('success', 'User created successfully!');
return redirect()->route('users');
}
请帮助我解决此问题。如果您需要有关代码的更多信息,请告诉我。
答案 0 :(得分:0)
store
方法似乎很好,问题可能出在index
方法上,该方法返回带有用户列表的视图,但没有返回profile
关系,您可以尝试在索引视图中调用$user->profile()->avatar
而不是$user->profile->avatar
。这样,您就可以在访问关系时对其进行查询。
答案 1 :(得分:0)
您的查询返回的是数组还是对象?如果您转储它,您可能会发现它是一个数组,而您所需要的只是数组访问([])而不是对象访问(->)。
答案 2 :(得分:0)
您可以改为尝试
$user->profile($id)['avatar'];
考虑到您的个人资料功能的输入为$id
,并且该功能返回您正在获取的用户个人资料信息
答案 3 :(得分:0)
这听起来像您的对象不存在或它是一个数组... 只需在$ user之前添加@
{{asset(@$user->profile->avatar)}}
答案 4 :(得分:0)
根据您的帖子,我假设您有一个用于个人资料的单独表格,这是理想的选择。
您需要做的是打开Profile
模型并创建这样的关系;
public function profile(){
return $this->belongsTo('App\User', 'user_id', 'id');
}