它非常简单,因为它是最基本的东西,但我不知道我错过了什么:
拥有一个名为Site
我使用Eloquent ORM,所以当我打电话时(在控制器中)
$oSite = Site::find(1)
然后
var_dump($oSite);
返回值NULL
。
但是当我检查数据库时,表格'网站'实际上包含以下项目:
id: 1
user_id: 1
name: test
在我的Site
模型中,我有以下代码:
use Illuminate\Database\Eloquent\ModelNotFoundException;
Class Site extends Eloquent {
protected $table = 'sites';
protected $fillable = ['user_id', 'name'];
}
相反,如果我使用以下内容收集项目:
$oSite = DB::table('sites')
->where('id', 1)
->first();
它有效,我得到了正确的注册。
我做错了什么?我没有得到哪些文件?
修改
可以在上面检查模型代码。
控制器:
use Illuminate\Support\Facades\Redirect;
class SiteManagementController extends BaseController {
...
public function deleteSite()
{
if (Request::ajax())
{
$iSiteToDelete = Input::get('siteId');
$oSite = Site::find($iSiteToDelete);
return var_dump($oSite);
}
else
{
return false;
}
}
}
编辑2 :(已解决)
为什么没有工作的真正原因:
我的模型代码中最初如下:
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Illuminate\Database\Eloquent\ModelNotFoundException;
Class Site extends Eloquent {
protected $table = 'sites';
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
protected $fillable = ['user_id', 'name'];
}
问题是我添加了deleted_at
'在我启动项目后,当我应用迁移时,我没有启用软删除。
显然,我做了第二个错误,忘记启用' deleted_at
'可以为空,因此所有插入都有错误的时间戳(0000-00-00)。
修正:
制作可空的' deleted_at
'列。
设置所有错误' deleted_at
'时间戳到NULL
。
答案 0 :(得分:1)
检查您是否正确获得Input::get('siteId')
。如果你得到它然后尝试将其转换为整数,即
$iSiteToDelete = intval(Input::get('siteId'));
答案 1 :(得分:1)
你没有归还你的模特。
var_dump
打印输出并且不返回任何内容。
改为:
dd($oSite); // stands for var_dump and die - a helper method
甚至更好,只需返回模型:
return $oSite; // will be cast to JSON string