Php 在route::resource内部使用ORM时遇到问题
我只是跟着马丁·比恩的书去了解拉威尔5号。他开始用路由器教授laravel,在使用了一些基本的Route::get和Route::delete方法之后,他给出了一个关于如何使用Route::resource的非常简短的示例,他说我让你自己来做:) 在结构上没有问题,但是当我试图在方法内部传递ORM时遇到了麻烦 这是我的CatsController.phpPhp 在route::resource内部使用ORM时遇到问题,php,orm,laravel-5,Php,Orm,Laravel 5,我只是跟着马丁·比恩的书去了解拉威尔5号。他开始用路由器教授laravel,在使用了一些基本的Route::get和Route::delete方法之后,他给出了一个关于如何使用Route::resource的非常简短的示例,他说我让你自己来做:) 在结构上没有问题,但是当我试图在方法内部传递ORM时遇到了麻烦 这是我的CatsController.php namespace firstApp\Http\Controllers; use Illuminate\Http\Request; use
namespace firstApp\Http\Controllers;
use Illuminate\Http\Request;
use firstApp\Http\Requests;
use firstApp\Http\Controllers\Controller;
public function show(\firstApp\Cat $cat)
{
return $cat;
//return view('cats.show')->with('cat', $cat);
}
下面是我如何使用路由器
Route::resource('cats', 'CatsController');
这是我的Cat.php
-
namespace firstApp;
use Illuminate\Database\Eloquent\Model;
class Cat extends Model {
public $timestamps = false;
protected $fillable = ['name', 'date_of_birth', 'breed_id'];
public function breed(){
return $this->belongsTo('firstApp\Breed');
}
}
当我呼叫http://localhost/firstApp/public/cats/2
我得到的是一个空对象
有什么问题
谢谢。您正在将模型注入到
show
方法中,但没有执行任何查询以获得结果
要解决此问题,请将代码更改为以下内容:
public function show(\firstApp\Cat $cat, $id)
{
return $cat->find($id);
}
请注意,在上面的代码中,我还将$id
注入show
方法,因此当您点击http://localhost/firstApp/public/cats/2
URL,2
将存储在此变量中
在大多数情况下,来自Laravel社区的人会做如下相同的事情:
public function show($id)
{
return \firstApp\Cat::find($id);
}
祝你好运。询问教程或其他资源的链接是离题的,所以你可能应该编辑掉这部分内容(你的问题没有它)。@Nathantugy你认为我必须这么做吗?现在这是一个接近投票的诱饵,所以不,你不必这样做,但它肯定会帮助你的问题保持开放。或者,嘿,你可以更多地依靠陌生人的友善,他们不会介意做一些你自己也能轻松做到的事情,对吧?@Nathantugy我很抱歉可能会有误解,因为英语不是我的母语。。很抱歉