[英]Laravel 5.0: Form::select() called twice Eloquent Accessor by select name
刀片模板:
{!! Form::model($category) !!}
{!! Form::select('drinks_id', [...full list...]) !!}
{!! Form::close() !!}
雄辩的访问者调用的'drinks_id'
:
public function getDrinksIdAttribute()
{
var_dump('get');
return 123;
}
执行Form::select('drinks_id')
,两次调用getDrinksIdAttribute()
并从var_dump()
打印出string(3) "get" string(3) "get"
。
如果我这样写:
{!! Form::model($category) !!}
{!! var_dump($category->drinks_id) !!}
{!! Form::close() !!}
它一次调用了getDrinksIdAttribute()
。
这是Form::select()
错误,还是我做错了什么?
FormBuilder
使用object_get()
帮助函数从模型获取值:
/**
* Get the model value that should be assigned to the field.
*
* @param string $name
* @return string
*/
protected function getModelValueAttribute($name)
{
if (is_object($this->model))
{
return object_get($this->model, $this->transformKey($name));
}
elseif (is_array($this->model))
{
return array_get($this->model, $this->transformKey($name));
}
}
object_get()
两次称为object_get()
Accessor:
解决方案:
{!! Form::model($category) !!}
{!! Form::select('drinks_id', [...full list...], $category->drinks_id) !!}
{!! Form::close() !!}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.