有什么区别:类的名称作为一个公共函数参数
class PostController extends \BaseController {
public function delete($id) {
$deletePost = Post::findOrFail($id);
return View::make('backend.delete')->with('post', $deletePost);
}
}
和
class PostController extends \BaseController {
public function delete(Post $post) {
return View::make('backend.delete')->with('post', $post);
}
}
谁能给我解释一下:public function delete(Post $post)
我们采取了一个名为“邮报班“作为变量$post
?
UPDATE1。
在routes.php文件:
Route::model('post', 'Post');
Route::get('delete/{post}', array('uses' => '[email protected]'));
Route::post('delete', array('uses' => '[email protected]'));
和PostController.php:
public function delete(Post $post) {
return View::make('backend.delete')->with('post', $post);
}
public function doDelete() {
$post = Post::findOrFail(Input::get('id'));
$post->delete();
return Redirect::action('[email protected]');
}
但无论如何,我得到一个错误:没有找到模型[发布]查询结果。 用第二种方法。
不,作为$ post传递的参数必须是'Post'类型的对象实例,或者是扩展'Post' –
http://docs.php.net/manual/en/language.oop5的类的对象实例。 typehinting.php – Deadooshka