我有两个表,用户和帖子表使用 Laravel 5.5 中的一对多关系链接在一起。我只想显示与登录用户关联的帖子。我有 PostController,我可以在其中获取当前用户登录信息并将其传递给视图 index.php。在 index.php 视图中,我尝试使用 @foreach 获取和循环与登录用户关联的帖子。请参阅下面我的示例代码。后控制器public function index(){ $currentuser = Auth::user(); return view('posts.index')->withCurrentuser($currentuser);}index.php 视图@foreach ($currentuser->posts as $post) <tr> <td>{{ $post->id }}</td> <td>{{ $post->title }}</td> <td>{{ substr(strip_tags($post->body), 0, 40) }}{{ strlen(strip_tags($post->body))>40 ? "..." : "" }}</td> <td>{{ date('M j, Y', strtotime($post->created_at)) }}</td> <td><a href="{{ route('posts.show', $post->id) }}" class="btn btn-outline-blue btn-sm">View</a> <a href="{{ route('posts.edit', $post->id)}}" class="btn btn-sm btn-outline-blue">Edit</a></td> </tr> @endforeachUser.php 模型 protected $table = 'users'; public function post(){ return $this->hasMany('App\Post'); }Post.php 模型public function users(){ return $this->belongsTo('App\User');}我收到一个错误为 foreach() 提供的参数无效问题可能出在哪里?
2 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
用户模型将方法定义为post()
但在 foreach 中您调用它->posts
(复数)。尝试@foreach ($currentuser->post()->get() as $post)
白猪掌柜的
TA贡献1893条经验 获得超10个赞
$currentuser->posts in Foreach
you used $currentuser->posts
but "posts" is method in you model (user.php).
so use it as method.
Or use temp variable for foreach like..
$posts = $currentuser->posts();
foreach($post as $key=> $val)
{
}
- 2 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消