Laravel 4资源控制器显示($ id)方法问题

时间:2013-05-19 13:26:30

标签: php laravel laravel-4

是否必须是数据库表中的'id'列才能正常工作 在控制器中显示($ id),编辑($ id)方法?
我想将 $ id 替换为数据库表中“ post_id ”列的值,但会引发错误:ModelNotFoundException
我该如何解决?

示例代码:

数据库表:

  

id(int),post_id(varchar32),post_title(varchar32),post_content(text)

路线:

  

Route :: resource('posts','PostsController');

PostsController:

  

公共功能节目($ id)       {           return View :: make('posts.show');       }

当我访问http://localhost/posts/1时 它应该返回表格中 id 1的帖子视图 如果我根据表格中的 post_id 值返回视图怎么办? 是否必须替换show()或?

中的参数

2 个答案:

答案 0 :(得分:2)

在PostsController中,您需要访问Post模型以从db获取数据。

像这样:     // PostsController

public function show($id) { 
$post = Post::where('post_id', $id)->first();

return View::make('posts.show', compact('post')); 
}

答案 1 :(得分:0)

你也可以使用find

   if let convertedSpeed = Int(textField.text) {
        // Implement whatever you want
   } else {
        // Notify user of incorrect input
   }