我试图使用代码(在我的控制器中)从数据库中获取数据
public function viewStock()
{
$stocks = Stocks::where('ID', '=', 2);
if($stocks->count())
{
$stocks = $stocks->first();
return View::make('trucks')
->with('stocks', $stocks);
}
}
由于某种原因,它通过IF语句然后在我的输出页面输出NULL,其中包含代码:
@extends('layout.main')
@section('content')
<p>{{ var_dump($stocks->stockcontent) }}</p>
@stop
我猜它没有计算任何东西,因为它返回NULL但是它仍然通过if语句?
编辑
当我使用var_dump($stocks)
时
它打印:http://i.imgur.com/RbvbNdr.png
答案 0 :(得分:0)
那是因为你永远不会发出查询。因此,当您执行$stocks->count()
时,您实际上正在发送COUNT()
作为SELECT
条款。这就是你应该这样做的方式:
public function viewStock() {
try {
$stocks = Stocks::findOrFail(2);
return View::make('trucks')
->with('stocks', $stocks);
} catch (ModelNotFoundException $e) {
// Handle model not found
}
}
答案 1 :(得分:0)
我已修复它,我不知道是否还有其他方法可以解决它,但我的解决方法是因为当我第一次将数据插入数据库时,我没有laravel生成的默认created_at和updated_at以及我使用脚本时将一些数据放入其中会自动添加这些字段,每当我尝试打印已填充created_at和updated_at的数据时,它都能正常工作。