最近 post 显示不正确

Recent post not displaying correctly

控制器文件代码如下:

public function viewpost($url) 
{
    $url ='articles/'.$url;

    if(count(posts::where('url', '=', $url)->first())<>1) {
        return redirect()->back();
    }

    $posts = posts::all();
    return view('viewpost')->with([
        'posts' => posts::all(), 
        'post' => posts::where('url', '=', $url)->first()
    ]);
}

post 的正常 URL 应该是网站。com/articles/name-of-post-here。在边栏中,post 现在显示为网站。com/articles/articles/name-of-post-here

直播示例post:

https://collegeconnect.ph/articles/how-to-improve-your-study-habits

此外,一些 post 在数据库中的状态为 "trashed"。我怎样才能只显示 posts 和 "active" 的统计数据?

我的查看代码:

                         @foreach($posts as $post)
                         <p><a href="{{ URL::to($post->url) }}"><img style="width:100px;" src="{{asset('thumbnails/'.$post->thumbnail)}}" class="responsive"></a><br>
                        <a href="{{$post->url}}">{{substr(($post->title),0,88)}}..</a></p>
                      </tr>
                   @endforeach

您在示例中进行了 4 次数据库调用,最好只从数据库中获取一次数据并使用这些数据。

另外我会得到 post id,Allot cleaner。但是如果你想要名字你可以把id改成名字。

在 routes/web.php

Route::get('/articles/{url}', 'Auth\HomeController@viewpost');

在控制器中

public function viewpost($url){

$url = 'articles/'.$url;
$posts = posts::where('post_status', '')->get();
$post = $posts->where('url', $url)->first()

if ( empty($post) )
    return redirect()->back();

return view('viewpost')->with('post', $post)->with('posts', $posts);

然后视图 $post 将可用,例如

<h1>{{ $post->title }}</h1>

然后在视图的 foreach $posts 循环中将其更改为

<a href="{{ URL::to($post->url) }}"><img style="width:100px;" src="{{asset('thumbnails/'.$post->thumbnail)}}" class="responsive"></a>