在视图中显示数组元素 - Laravel

时间:2014-08-26 08:11:39

标签: laravel

我正在尝试输出这样的变量:<h1>{{ $unitcode }}</h1>

我有这个代码制作变量:

        // Validation was successful.
        $inputcode = Input::get('unitcode');
        // First validation is successful. Next to check that it is a correct unit code.
        $unitcode = DB::table('unitcodes')->where('unitcode', $inputcode)->first();

       if(!$unitcode) {
           // Input code is wrong. The unit does not exist.
            return Redirect::route('get-buy')
                ->with('global', 'That unit code does not exist. Try again.');
       } else {
           // Success! Unit code exists!
            return View::make('showbooks')
                ->with('unitcode', $unitcode);
       }

当我运行一切时,它给了我这个: ErrorException (E_UNKNOWN) Array to string conversion (View: ..BLAH goes on to display path to view.

如何让它显示我想从DB中提取的变量?

谢谢!

1 个答案:

答案 0 :(得分:1)

在Laravel的DB abastraction层中,数据库表中的一行(SELECT ... LIMIT 1 - DB::...->first()的结果)是一个数组。 您可以使用View::...->with发送任何类型的变量,但您需要在模板本身('showbooks')中正确使用它们。 您很可能在模板中执行{{{ unitcode }}},这实际上类似于执行echo $unitcode。现在,如果$unitcode是一个数组而echo需要一个字符串,那么PHP会自动尝试转换它并失败(ErrorException (E_UNKNOWN) Array to string conversion...)。 您需要做的是正确使用它:

{{{ unitcode['unitcode'] }}}

这将起作用,因为$unitcode是键值字典,其中每个键都是DB表中的一列及其关联值。