我从数据库src="{{ Storage::url($user->avatar) }}"
中的图片加载路径。图像应显示在配置文件页面和设置中。在配置文件页面上显示图片,在设置中我收到错误消息“未定义变量用户”。
如何定义变量“user”?
class SettingsController extends Controller
{
public function index()
{
return view('setting')
->with('user', $user);
}
public function editProfile()
{
return view('setting')->with('info', Auth::user()->profile);
}
public function updateProfile(Request $r)
{
$this->validate($r,[
'about' => 'required|max:250',
'webpage' => 'required'
]);
Auth::user()->profile()->update([
'about' => $r->about,
'webpage' => $r->webpage
]);
if($r->hasFile('avatar'))
{
Auth::user()->update([
'avatar'=> $r->avatar->store('public/' . Auth::id() . '/avatar')
]);
}
return back()->with('success', lang::get('messages.profileupdate'));
}
}
答案 0 :(得分:0)
根据您的评论,我认为您缺少对Laravel“如何工作”的基本理解。请阅读官方documentation并按照示例进行操作。
在“定义控制器”部分的Controller Documentation中有一个用户特定的示例,其中包含用户。
Laracasts是一个提供有用教程的网站,我始终建议初学者使用。
答案 1 :(得分:0)
在index()方法中,您将$ user发送到视图而不先定义它。
在此之前添加 $ user = \ Auth :: user(); 。见下文。
class SettingsController extends Controller
{
public function index()
{
$user = \Auth::user(); // define user first before sending it to the view
return view('setting')
->with('user', $user);
}