为 foreach() Laravel 5.5 提供的参数无效

我有两个表,用户和帖子表使用 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>&nbsp;<a href="{{ route('posts.edit', $post->id)}}" class="btn btn-sm btn-outline-blue">Edit</a></td>


        </tr>


    @endforeach

User.php 模型


 protected $table = 'users';

    public function post(){

        return $this->hasMany('App\Post');

    }

Post.php 模型


public function users(){

    return $this->belongsTo('App\User');

}

我收到一个错误


为 foreach() 提供的参数无效


问题可能出在哪里?


繁星点点滴滴
浏览 121回答 2
2回答

哆啦的时光机

用户模型将方法定义为post()但在 foreach 中您调用它->posts(复数)。尝试@foreach ($currentuser->post()->get() as $post)

白猪掌柜的

$currentuser->posts in Foreach&nbsp;you used $currentuser->postsbut "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){}
打开App,查看更多内容
随时随地看视频慕课网APP