Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Php 如何在两个表之间使用Laravel Eloquent创建子查询_Php_Mysql_Laravel_Rest_Eloquent - Fatal编程技术网

Php 如何在两个表之间使用Laravel Eloquent创建子查询

Php 如何在两个表之间使用Laravel Eloquent创建子查询,php,mysql,laravel,rest,eloquent,Php,Mysql,Laravel,Rest,Eloquent,大家好,我是Laravel开发的新手,我想知道如何在两个表之间创建子查询,例如,我想执行以下查询: SELECT * FROM `contracts` WHERE `trainer_id` = '1' OR id IN ( SELECT `contract_id` FROM `trainees` WHERE `user_id` = '1' ) 我在中进行了测试,它可以正常工作,我想知道如何在Laravel Elount中编写它假定您的模型名为Contract,您可以使用以下

大家好,我是Laravel开发的新手,我想知道如何在两个表之间创建子查询,例如,我想执行以下查询:

SELECT * FROM `contracts` 
WHERE `trainer_id` = '1' OR id IN (
    SELECT `contract_id` FROM `trainees` 
    WHERE `user_id` = '1'
)

我在中进行了测试,它可以正常工作,我想知道如何在Laravel Elount中编写它假定您的模型名为Contract,您可以使用以下语法来实现您想要的:

Contracts::where('trainer_id', '1')
    ->orWhere(function ($subquery) {
        $subquery->whereIn('id', function ($query) {
            $query->select('contract_id')
                ->from('trainees')
                ->where('user_id', '1');
        })
    })->get();

假设您的模型名为Contract,您可以使用以下语法实现所需的功能:

Contracts::where('trainer_id', '1')
    ->orWhere(function ($subquery) {
        $subquery->whereIn('id', function ($query) {
            $query->select('contract_id')
                ->from('trainees')
                ->where('user_id', '1');
        })
    })->get();

您可以使用relationship:post-laravel代码。这里的人可以帮助您找到并更正错误。您可以使用您尝试过的Relationship:post laravel代码。这里的人可以帮助您发现并纠正错误。