laravel - 如何更改查询,使其仅显示名称而不是整个数组(laravel 8)
问题描述
我有一个查询将数据放入一个集合中,问题是它显示了外国 id,但我希望它显示我在 url 参数中给出的内容。
columnsGiven
是来自 url 的参数。包含带有子项的列名:“language.name”。所以column=active,title,language.name
例如我得到这个:
"name": "george",
"active": 1,
"language": 1,
这就是我想要的:
"name": "george",
"active": 1,
"language": "Dutch",
这是我的代码:
public function index(Request $request){
$columnsGiven = explode(',', $request->columns);
$tableName = $request->table_name; //example: 'support_guide_translations'
$modelName = $request->model_name; //example: "App\Models\SupportGuideTranslation";
if($request->search){
$query = $modelName::search($request->search);
} else{
$query = $modelName::query();
if($request->sort){
$sort = explode('?', $request->sort);
$query->orderBy($sort[0], $sort[1]);
}
}
foreach ($request->query() as $key => $value) {
// dd($value);
if(!$value == ""){
if(Schema::hasColumn($tableName, $key)){
$query->where($key, $value);
}
if(in_array($key, $columnsGiven)){
dd('true');
}
// $searchWord = Str::contains('account123',$request->search);
}
}
$guides = $query->get();
return GuideResource::collection($guides);
}
}
这是 GuideResource,它首先将数据发送到 json。此处不允许更改,必须在功能索引中进行。:
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'body' => $this->body,
'active' => $this->active,
'language' => $this->language,
'support_guide' => $this->support_guide,
'support_guide_group' => $this->support_guide_group,
];
}
解决方案
"language": {
"id": 1,
"name": "Dutch",
"code": "NL",
"created_at": "2021-06-14T10:10:32.000000Z",
"updated_at": "2021-06-14T10:10:32.000000Z"
},
我相信"language"
与另一个模型有关系。
这不是你要找的吗?
return [
// your other attributes...
'language' => $this->language->relationshipName->name,
];
其中relationshipName
是Language
模型中的方法名称。
推荐阅读
- ffmpeg - FFmpeg - 由于覆盖过滤器,从 webm 文件生成波形图像不起作用
- visual-studio-code - Terraform - 在 IDE 中自动填充所需的属性
- javafx - JavaFX 中的 ImageView 无效 URL 问题
- python - 构造 JSON 变量时出错?
- css - 在网站中使用哪个字体文件?
- reactjs - 从函数内触发事件
- mbedtls - 如何使用 mbedtls 从证书中提取单个 OID?
- php - 通过 Webhook 发送的 Slack 消息中出现了不需要的表情符号
- html - 当我点击它时,按钮不会打开
- automation - UIPath RPA 如何使用密码从 pdf 中获取元素和文本?