我正在使用框架Phalcon。我试图创建一个表格,以从名为cliente的表(在mysql中)获得一个值(ID为“idcliente”),该表有两列:“idcliente”和“nombre”。有了这个值,我想在另一个名为Users的表上更新一个字段(也称为“idcliente”)。使用下拉式表格在Phalcon上不起作用
我的形式是这样的:
class AsignarclienteForm extends Form{
public function initialize($entity = null, $options = null){
$idcliente = new Select('idcliente',[
Cliente::find(),
"useEmpty" => true,
"emptyText" => "Please select...",
"using" => ["idcliente", "nombre"],
]);
$idcliente->setLabel('ID Cliente');
$idcliente->addValidators(array(
new PresenceOf(array(
'message' => 'idcliente is required'
))
));
$this->add($idcliente);
}
}
而且我的控制器:
public function asignarclienteAction(){
$auth = $this->session->get('auth');
$permiso = $auth['active'];
$id = $auth['id'];
if($permiso!='A'){return $this->forward('servicios/index');}
$form = new AsignarclienteForm;
if ($this->request->isPost()) {
$idcliente = $this->request->getPost('idcliente');
$sql = "UPDATE Users SET idcliente = ?0 WHERE id = ?1";
$this->modelsManager->executeQuery($sql, array(0 => $idcliente, 1 => $id));
return $this->forward('admin/usuarios');
}
$this->view->form = $form;
}
而我的观点:
<div class="panel-body">
{{ form('admin/asignarcliente/', 'id': 'asignarclienteForm', 'onbeforesubmit': 'return false') }}
<fieldset>
<div class="control-group">
{{ form.label('idcliente', ['class': 'control-label']) }}
<div class="controls">
{{ form.render('idcliente', ['class': 'form-control']) }}
</div>
</div>
<div class="form-actions">
{{ submit_button('Asignar', 'class': 'btn btn-primary', 'onclick': 'return SignUp.validate();') }}
</div>
</fieldset>
</form>
</div>
我在网站上的以下错误:
ID Cliente Catchable fatal error: Object of class Phalcon\Mvc\Model\Resultset\Simple could not be converted to string in C:\xampp\htdocs\OpinionZoom\cache\volt\c%%%%xampp%%htdocs%%opinionzoom%%app%%views%%admin%%asignarcliente.volt.php on line 31
其中第31行是{{ form.render('idcliente', ['class': 'form-control']) }}
在我看来
我还没有找到如何创建一个形式选择足够的资料,尽管我已经创造了很多形式。
如果有人能帮助我,我会很感激。谢谢。
一个问题:为什么你遍历你看你的表单元素?你没有在循环中使用'element'变量。现在,您只需输出'idcliente'元素x次!还是仅仅为了调试目的? – Timothy
@蒂莫西良好的观察。我刚刚复制了我在Web中找到的示例。但是你是对的,在我的其他形式中,我没有for循环。谢谢:D已经出来。 –