我正在尝试输出这样的变量:<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中提取的变量?
谢谢!
答案 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表中的一列及其关联值。