如何将参数传递给模型构造函数,我的控制器中有以下代码
public static function inbox(){
$user=Sentry::getUser();
$results=new Message($user->id);
$inbox=$results->inbox();
return $inbox;
}
在我的模态中,我正在扩展父模态构造函数,如下所示
class Message extends 'Eloquent {
private $user_id;
public function __construct($attributes = array()) {
parent::__construct($attributes); // Eloquent
}}
现在我想将 $user_id 传递给消息模式构造函数,我该如何实现
当使用雄辩创建将数据插入数据库时,没有将任何内容插入到数据库中,这是代码
Message::create(
array(
'msg_id'=>$result->id,
'subj'=>Input::get('subj'),
'content'=>Input::get('content'),
'sender_id'=>Input::get('sender_id'),
'receivers_id'=>$user->id,
'file'=>Input::get('file')
)
);
就像我覆盖了模型类的内置构造函数
您可以使用
@PeterPopelyshko的方法并覆盖构造函数,或者只使用Eloquent提供的内容。批量分配。
可以使用关联数组通过构造函数传入属性:
$results = new Message(array(
'user_id' => $user->id
));
只需确保定义所有属性,您希望可在模型的$fillable
数组中填充:
class Message extends 'Eloquent {
protected $fillable = array('user_id');
}
请注意,如果这是数据库字段,则不需要private $user_id
。Laravel在自己的$attributes
数组中处理它们。
class Message extends 'Eloquent {
private $user_id;
public function __construct($user_id, $attributes = array()) {
$this->user_id = $user_id;
parent::__construct($attributes); // Eloquent
}}
然后您可以在控制器中使用它
$results=new Message($user->id);
您可以在模型中访问 $user_id,如下所示$this->user_id