Получить данные в соответствии с другими данными в той же таблице базы данных в Laravel - PullRequest
0 голосов
/ 27 мая 2019

Я создал таблицу базы данных с именем 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'

1 Ответ

0 голосов
/ 27 мая 2019

Вы можете использовать 'где', чтобы указать такие ограничения:

Выберите «config_value», где «config_name» равно «status». Чтобы получить только первый ряд, используйте 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') -> где ('config_name', 'title') -> get ();

foreach ($configs as $config) {
    echo $config->config_value;
}

Вы можете связать это. Выберите все конфиги, где «config_name» является «status» или «title».

$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» является либо «status», либо «title».

$configs = App\Config::select('config_value')->whereIn('config_name', ['status', 'title'])->get();

foreach ($configs as $config) {
    echo $config->config_value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...