Laravel从数据库中获取数据

时间:2014-11-23 21:31:09

标签: php 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

2 个答案:

答案 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的数据时,它都能正常工作。