未定义的变量用户laravel

时间:2017-11-04 18:22:48

标签: laravel variables undefined

我从数据库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'));
    }
}

2 个答案:

答案 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);
    }