Laravel外卡问题

时间:2016-07-10 18:16:42

标签: laravel laravel-5 laravel-5.2 wildcard

我有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'));
}
}

2 个答案:

答案 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'));
    }
}