eloquent:如何在模型内部加载和设置模型变量


eloquent: How to load and set model variables, inside the model itself?

Laravel文档建议以下方法来建立一个雄辩的模型:

$user = user::with($conditions)->first();

如果我想在模型本身中设置我的eloquent模型:

$user = new user();
$user->setup($conditions);
// class definition
class user extends Eloquent{
    public function setup($conditions){
        // load current object with table data
        // something like
        $this->where($conditions)->first();
        // previous line output is dangling, is ok to assign it to $this variable?
    }
}

如果您正在扩展Eloquent模型,您可以尝试以下方法。我假设您有一个唯一的id列。

public function setup($conditions)
{
    $model = self::with($conditions)->first();
    if (! is_null($model)) {
        $this->exists = true;
        $this->forceFill(self::find($model->id)->toArray());
    }
    return $this;
}

希望这能解决你的问题