当我做这样的事情时,
$user = User::where('id', 1)->get()`;
构造函数触发。有没有办法避免这种情况?
我只想在使用像$user = new User();
这样的新关键字时使用__contruct函数
答案 0 :(得分:2)
你的例子与Laravel在场景背后的表现非常相似。当您执行User :: find()时,您实际上是在要求一个新实例,即Collection的实例或QueryBuilder。
// Illuminate\Database\Eloquent\Model
public static function find($id, $columns = array('*'))
{
if (is_array($id) && empty($id)) return new Collection;
$instance = new static;
return $instance->newQuery()->find($id, $columns);
}
你应该使用听众。