我的视图文件中包含以下代码:
@if(!empty($slug))
dd(11);
<a href="{{$post->url}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>
@else
dd(22);
<a href="{{$post->slug}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>
@endif
我有一篇帖子在slug数据库表列中有数据。其他帖子没有。它们仅在url列中包含数据。但此刻,我看到每个帖子旁边的dd(22)。 slug列中包含数据的帖子在其URL结构中有slug。其他帖子没有任何网址。他们的网址是website.com/articles
有什么想法吗?
这是我的路线文件中的代码,顺便说一下:
Route::get('articles/{url}', 'postsController@viewpost');
不确定如何编辑它以放置文章/ {slug}
帖子控制器:
public function viewpost($url,$slug){
if ( empty($slug) ) {
$url ='articles/'.$url;
} else {
$url = 'articles/'.$slug;
}
$posts = posts::where('post_status', '')->get();
if ( empty($slug) ) {
$post = $posts->where('url', $url)->first();
} else {
$post = $posts->where('slug', $slug)->first();
}
if ( empty($post) )
return redirect()->back();
return view('viewpost')->with('post', $post)->with('posts', $posts);
}
最近的帖子代码:
<h3>Recent Posts</h3>
@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="{{ URL::to($post->url) }}">{{substr(($post->title),0,88)}}..</a></p>
@endforeach
答案 0 :(得分:0)
代码中的这一行
Route::get('articles/{url}', 'postsController@viewpost');
只向控制器函数发送$ url,因此$ slug始终为空。 此外,您将$ post和$ posts变量发送到您的视图,因此$ slugs也始终为空。这就是为什么它总是在其他地方显示dd(22)
答案 1 :(得分:0)
我的另一个答案是为什么你总是看到dd(22)。 纠正问题:
public function viewpost($url){
$posts = posts::where('post_status', '');
$post = $posts->where('url', $url)->orWhere('slug' , $url)->first();
}
if ( empty($post) )
return redirect()->back();
return view('viewpost')->with('post', $post)->with('posts', $posts->get());
}
和你的刀片:
@if(!empty($post->slug))
dd(11);
<a href="{{'articles/'.$post->slug}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>
@else
dd(22);
<a href="{{'articles/'.$post->url}}" class="latest-heading">{{substr(($post->title),0,88)}}..</a>
@endif