从数据库Laravel获取数据
问题描述:
我试着去得到使用的代码数据库中的数据(在我的控制器)从数据库Laravel获取数据
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
答
那是因为你从来没有发出查询。所以,当你做$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
}
}
答
伊夫固定它,我不知道是否有解决它,但我的修正,是因为当我第一次插入数据到DATABSE我没有默认的任何其他方式created_at和updated_at是laravel生成的,当我使用脚本将一些数据放入其中时,会自动添加这些字段,并且每当我尝试打印已填充created_at和updated_at的数据时,它都会工作。
你试过倾销'股票'吗?为什么你有'股票::其中('ID','=',2)'和'股票 - >第一()','ID'不是主键? – 2014-11-23 21:35:11
是的,它是一个主键,如果我不把$股票 - >第一()在它给出这个错误:http://i.imgur.com/Sbv4CSU.png,我也试过其他列。 – Batzz 2014-11-23 21:38:00
是的,你需要更优雅地使用口才 - '$ stock = Stocks :: findOrFail(2)'会做你想做的事情。如果您想手动检查它包含的内容,可以执行'$ stock = Stocks :: find(2)'并检查它包含的内容。此外,我建议你安装laralvel调试栏,这样你可以看到什么是在你的查询返回甚至转储数据会话,看看发生了什么。 – 2014-11-23 21:43:16