我已经创建了一个名为 config_table 的数据库表,如下所示:
+----+-------------+--------------+---------+
| id | config_name | config_value | user_id |
+----+-------------+--------------+---------+
| 1 | status | 1 | 1 |
| 2 | title | Test Title | 1 |
| 3 | token | k12345abc | 1 |
+----+-------------+--------------+---------+
使用 Laravel Eloquent ,我可以创建一个模型,然后开始轻松地检索数据,例如:
<?php
$configs = App\Config::all();
foreach ($configs as $config) {
echo $config->config_name;
}
并获得输出:
status
title
token
但我想执行以下操作:
通过 config_value
获取 config_name
集合,并同时考虑 user_id
echo status;
echo title; //which is under the 'config_name' column
预期的输出应该是
1
Test Title //which is the config_value of the config_name 'title'
答案 0 :(得分:0)
您可以使用'where'来指定约束,如下所示:
选择“ config_value”,其中“ config_name”为“状态”。要仅获取第一行,请使用first()
$config = App\Config::select('config_value')->where('config_name', 'status')->first();
echo $config->config_value;
类似地,选择“ config_value”,其中“ config_name”为“ title”。要获取所有行,请使用get(),然后可以遍历所有行。
$ configs = App \ Config :: select('config_value')-> where('config_name','title')-> get();
foreach ($configs as $config) {
echo $config->config_value;
}
您可以将其链接。选择“ config_name”为“状态”或“标题”的所有配置。
$configs = App\Config::select('config_value')->where('config_name', 'status')->orWhere('config_name', 'title')->get();
foreach ($configs as $config) {
echo $config->config_value;
}
此外,您可以使用whereIn()指定列的多个值。选择“ config_name”为“状态”或“标题”的所有配置。
$configs = App\Config::select('config_value')->whereIn('config_name', ['status', 'title'])->get();
foreach ($configs as $config) {
echo $config->config_value;
}