【问题标题】:How do I fetch data based on user id using Laravel 5.4如何使用 Laravel 5.4 根据用户 ID 获取数据
【发布时间】:2017-12-07 21:06:25
【问题描述】:

我有模型 User 和 Diares 设置了 hasMany 和 BelongTo 关系。我正在尝试从与特定用户关联的 Diaries 表中获取数据。我尝试了身份验证,但它对我不起作用。我怎样才能做到这一点并在刀片视图中显示它。这是我当前的代码:

public function index(User $id)
    {
      $user = User::find($id);
    $record =  $user->diary;


      return view('home')->with('record', $record);

    }

它应该显示到的刀片文件:

 @foreach ($record as $diary)
    {{ $diary->error }}
      {{ $diary->fix }}
@endforeach

【问题讨论】:

  • print_r($user) 给出了什么?
  • 关于 php artisan tinker 或者我应该在哪里输入这个
  • 嗯,你总是可以使用 first 而不是 find laravel.com/docs/5.4/eloquent#retrieving-single-models
  • 在您的索引函数中检查用户对象是否正在传递
  • @Exprator 当我在索引中执行此操作时,它显示类似“此集合实例上不存在属性 [日记]”

标签: php laravel-5.4 laravel-blade laravel-eloquent userid


【解决方案1】:

在您的索引函数中,$id 不是整数 - 这是一个用户实例,因此您可以尝试使用它:

public function index(User $user)
{
  $record =  $user->diary;

  return view('home')->with('record', $record);

}

【讨论】:

  • 并且在您的路线中,您应该将路线更改为 /index/{user}
  • 感谢@Denis Gorgul。它不会引发任何错误,但也不会显示任何记录。我糊涂了。好的,我刚刚看到关于路线变化的评论。
  • 我得到 NotFound HTTP 异常。我的路线类似于 Route::get('/home{user}', 'HomeController@index')->name('home');
  • 您是否忘记在 /home 后面加上“/”?它应该是 Route::get('/home/{user}', 'HomeController@index')->name('home');
  • 非常感谢,它有效。我想我可以从这里继续。谢谢! :))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 2018-01-13
  • 2023-04-07
  • 2018-07-31
  • 2020-03-19
  • 1970-01-01
相关资源
最近更新 更多