如何将我的参数传递给模型构造函数,我的控制器中有以下代码
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模态构造函数,我该如何实现呢?
使用Eloquent将数据插入数据库时,没有任何内容被插入数据库这里是代码
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')
)
);
就像我已经覆盖Model类的内置构造函数
答案 0 :(得分:2)
您可以使用@ PeterPopelyshko的方法并覆盖构造函数或只使用Eloquent提供的内容。 Mass Assignment
您可以使用关联数组通过构造函数传递属性:
$results = new Message(array(
'user_id' => $user->id
));
只需确保在模型的$fillable
数组中定义所有属性,即 fillable :
class Message extends \Eloquent {
protected $fillable = array('user_id');
}
注意如果这是一个数据库字段,则您不需要private $user_id
。 Laravel在它自己的$attributes
数组中处理它们。
答案 1 :(得分:1)
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