【问题标题】:I want to Fetch the post to the user's Profile我想获取帖子到用户的个人资料
【发布时间】:2020-07-16 13:54:12
【问题描述】:

我想将帖子提取到用户的个人资料中,个人资料已经在提取个人简介 我也是编程和 laravel 的新手,请帮忙

这是我的控制器:-

public function index($post)
     {

       $post = Post::findOrFail($post);
       return view('profile.index', [
         'post' => $post,
       ]);


     }

这是我的看法:-

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
              <button type="button" class="btn btn-success"><a href="/bio-create">.Add Bio</a>  </button>

                <div class="card-header"><h2>{{Auth::user()->username}}</h2></div>
                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif

                    {{$user->profile->bio}}

                </div>
            </div>
        </div>
    </div>
    <div class="form-group row mb-0">
        <div class="col-md-6 offset-md-4">
            <button type="button" class="btn btn-primary"> <a href="/post">Add Info</a>

            </button>
        </div>
    </div>
</div>

<h1> Posts </h1>
@foreach($post as $row)
{{$row->title}}

@endforeach

@endsection

不知道如何完成@froeach 循环

这是我的路线:-

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();


Route::get('/profile/{user}', 'ProfilesController@index')->name('profile.show');

Route::get('/bio-create', 'ProfilesController@create');
Route::post('/b', 'ProfilesController@store');
Route::get('/post', 'PostsController@create');
Route::post('/p', 'PostsController@store');
Route::get('/profile/{user}/{post}', 'PostsController@index');

最后一个 Route 是我正在使用的路线 我什至不知道这样做是否正确

请帮助提前致谢

【问题讨论】:

  • 那么你要做的是,当你去user/show时,你想要用户的所有帖子?

标签: php laravel routing


【解决方案1】:

您想要的是带有ìndex-Method 的UserPostController,它可能如下所示:

public function index(User $user)
{
    return view('profile.index', [
        'posts' => $user->posts,
    ]);
}

如下所示的路线:

Route::get('/your-name/{user}/', 'UserPostController@index');

为此,您需要在PostUser 之间建立关系,其中User 很可能是父级,因此Owning-Side

【讨论】:

  • 我按照你的要求做了,但现在我无法访问来自 "ProfilesController" 的用户名数据,你能告诉我如何显示代码吗我用来显示它是&lt;h1&gt; All Forms &lt;/h1&gt; @if(count($posts) &gt; 0) @foreach($posts as $post) &lt;div class="well"&gt; &lt;h3&gt;{{$post-&gt;title}}&lt;/h3&gt; &lt;small&gt;written on {{$post-&gt;created_at}}&lt;/small&gt; &lt;/div&gt; @endforeach @else &lt;p&gt;No Forms Found&lt;/p&gt; @endif,我得到的错误是 "count(): Parameter must be an array or an object that implements Countable"
  • 你的 User-Model 和 post 有关系吗?例如hasMany() ?
  • 是的..用户模型有很多帖子,帖子模型属于用户类
  • 对不起,应该是$user-&gt;posts而不是$user-&gt;posts()
猜你喜欢
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
相关资源
最近更新 更多