我有master.blade.php
作为我的布局之一。当我在浏览器中加载post.blade.php
而没有像url:localhost8000/post
这样的通配符时,它会正常工作并加载完整的必需页面,但是当我使用通配符url:localhost8000/post/1
时,页面未完全加载。仅显示页脚。标题和正文出现白火虫显示数据存在,通过通配符传递。
这两个页面应该显示为相同,因为区别仅在于url中的通配符。
我的路线文件是
Route::get('post','PostsController@index');
Route::get('post/{post}','PostsController@show');
这是我的PostsController
class PostsController extends Controller{
public function index(){
return view('posts.post');
}
public function show(Post $post){
return view('posts.post',compact('post'));
}
}
答案 0 :(得分:0)
发生此类错误时,项目中很可能出现PHP变量错误。
找出的方法是查看HTML的来源,并根据错误发生的位置查看页面的第一部分或最后部分。
此外,我假设您已在Post
模型中的路线中正确绑定了关键字“id”。
答案 1 :(得分:0)
您应该传递id而不是object,因为您的url传递的是整数localhost:8000/post/1
class PostsController extends Controller{
public function index(){
return view('posts.post');
}
public function show($id){
$post = Post::find($id);
return view('posts.post',compact('post'));
}
}