Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
给定一个Laravel 5雄辩的模型,如何在一个查询中更新关系的所有模型?_Laravel_Eloquent - Fatal编程技术网

给定一个Laravel 5雄辩的模型,如何在一个查询中更新关系的所有模型?

给定一个Laravel 5雄辩的模型,如何在一个查询中更新关系的所有模型?,laravel,eloquent,Laravel,Eloquent,我有一家有很多工作的模范公司。公司和作业表示mysql表 简化课程: class Company extends Eloquent { public function jobs() { return $this->hasMany('App\Models\Job'); } } 我想在此类中添加一个函数,通过将每个作业的is\u active属性设置为0来停用公司的所有作业。使用查询生成器,我可以通过一个简单的更新查询来实现这一点。有没有一种方法可以在一

我有一家有很多工作的模范公司。公司和作业表示mysql表

简化课程:

class Company extends Eloquent
{
   public function jobs()
    {
        return $this->hasMany('App\Models\Job');
    }
}

我想在此类中添加一个函数,通过将每个作业的
is\u active
属性设置为
0
来停用公司的所有作业。使用查询生成器,我可以通过一个简单的更新查询来实现这一点。有没有一种方法可以在一个查询中使用模型/关系,而不是遍历每个作业?

据我所知,没有理由不能在公司模型中使用作业模型。你喜欢这个工作吗

public function deactivateJobs()
{
    App\Model\Job::where('company_id', $this->id)->update(['is_active' => false]);
}

据我所知,没有理由不在公司模式中使用工作模式。你喜欢这个工作吗

public function deactivateJobs()
{
    App\Model\Job::where('company_id', $this->id)->update(['is_active' => false]);
}
您可以这样做:

$company = Company::first(); // Or some $company where you want to update the jobs
$company->jobs()->update(['is_active' => 0]);
如果调用
$company->jobs()
,它将返回查询对象,您可以在其上链接查询方法

然后该方法将如下所示:

public function deactivateJobs()
{
    return $this->jobs()->update(['is_active' => 0]);
}
您可以这样做:

$company = Company::first(); // Or some $company where you want to update the jobs
$company->jobs()->update(['is_active' => 0]);
如果调用
$company->jobs()
,它将返回查询对象,您可以在其上链接查询方法

然后该方法将如下所示:

public function deactivateJobs()
{
    return $this->jobs()->update(['is_active' => 0]);
}