查询具有关系的模型字段
Query model fields with relationship
我有两个模型,User 和 Enumerator。我想搜索枚举器模型中的某些列及其在用户模型中的关系。这是我所拥有的;
枚举器
- unique_id
用户
- first_name
我想编写一个查询来获取同一集合中的 unique_id 和 first_name。
这是我的资料;
Enumerator::with(['user' => function($query) {
$query->select('id', 'first_name', 'last_name', 'email');
}])->get(['first_name', 'unique_id']);
我该怎么做?
如果你想在同一集合中获得多个 table 列,最好像这样在此处使用 join query
$joinTableName = (new App\User())->getTable();
$fromTableName = (new App\Enumerator())->getTable();
$foreignKey = "enumerators_id"; //user table set foreign key
$localKey = "id"; //enumerators table column local key
$selectColumns = [
"{$joinTableName}.first_name",
"{$fromTableName}.unique_id",
];
$a = App\Enumerator::select($selectColumns)
->join(
$joinTableName,
"{$joinTableName}.{$foreignKey}",
'=',
"{$fromTableName}.{$localKey}"
)->get();
dd($a);
我有两个模型,User 和 Enumerator。我想搜索枚举器模型中的某些列及其在用户模型中的关系。这是我所拥有的;
枚举器
- unique_id
用户
- first_name
我想编写一个查询来获取同一集合中的 unique_id 和 first_name。
这是我的资料;
Enumerator::with(['user' => function($query) {
$query->select('id', 'first_name', 'last_name', 'email');
}])->get(['first_name', 'unique_id']);
我该怎么做?
如果你想在同一集合中获得多个 table 列,最好像这样在此处使用 join query
$joinTableName = (new App\User())->getTable();
$fromTableName = (new App\Enumerator())->getTable();
$foreignKey = "enumerators_id"; //user table set foreign key
$localKey = "id"; //enumerators table column local key
$selectColumns = [
"{$joinTableName}.first_name",
"{$fromTableName}.unique_id",
];
$a = App\Enumerator::select($selectColumns)
->join(
$joinTableName,
"{$joinTableName}.{$foreignKey}",
'=',
"{$fromTableName}.{$localKey}"
)->get();
dd($a);