我有以下问题:
ORM::for_table('producto')->where_like('nombre_producto',"%{$valor}%")->find_array();
我收到以下查询
array (size=1)
0 =>
array (size=11)
'id' => string '1' (length=1)
'nombre_producto' => string 'Calabacin blanco' (length=16)
'nombre_latin' => null
'peso' => string '100.00' (length=6)
'descatalogado' => string '0' (length=1)
'dimensiones' => null
'descripcion' => null
'cantidad_stock' => string '100' (length=3)
'precioVenta' => string '1.00' (length=4)
'gama_id' => string '2' (length=1)
'proveedor_id' => string '1' (length=1)
我想显示一个选择的值的heredoc,我这样做:
$optionproducts = function($productos)
{
$data="";
foreach($productos as $producto)
{
$data.="<option value='{$producto['id']}'>{$producto['nombre']}</option>";
}
return $data;
};
我的字符串heredoc是:
$cadena = <<<EOD
<form class='form-horizontal' method='POST' role='form' action={{ urlFor('lineorder_create',{'id':{\$productos['id']}}) }}>
<h2>Listado de {$str}</h2>
<div class='form-group'>
<label class='col-md-4 col-xs-4 control-label' for='selectproductname'>Nombre producto:</label>
<div class='col-md-5 col-xs-5'>
<select name='selectproductname' class='form-control'>
{$optionproducts}
</select>
</div>
</div>
我得到的错误是,在第53行中,函数中的值无法转换为字符串
Catchable fatal error: Object of class Closure could not be converted to string in C:\wamp\www\viver\public\products_ajax.php on line 53
The line 53 in my products_ajax.php is in the heredoc {$optionproducts}
我怎么解决这个问题?感谢
答案 0 :(得分:1)
发生这种情况的原因是你实际上回应了你的封闭$optionproducts
而且它是
关闭对象,而不是像函数$optionproducts($parameter)
一样调用它。
$cadena = <<<EOD
<form class='form-horizontal' method='POST' role='form' action={{ urlFor('lineorder_create',{'id':{\$productos['id']}}) }}>
<h2>Listado de {$str}</h2>
<div class='form-group'>
<label class='col-md-4 col-xs-4 control-label' for='selectproductname'>Nombre producto:</label>
<div class='col-md-5 col-xs-5'>
<select name='selectproductname' class='form-control'>
<!-- you need to call it -->
{$optionproducts($productos)}
</select>
</div>
</div>