1

Что именно я хочу сделать, я хочу сделать динамический запрос в laravel 5.3 на основе запрошенных параметров, поэтому в запросе я получу имена столбцов, а затем фильтры для этого запроса, и я не знаю таблицы, из которых я хочу обработать данные. Итак, мой вопрос - как определить таблицы для этого запроса? или мне следует хранить таблицу и соответствующие столбцы в одной таблице базы данных и сопоставлять запрошенные параметры с этой таблицей, чтобы я получил имя таблицы и смог бы выполнить этот запрос?Как сделать динамический запрос в laravel 5.3?

Но я думал, что это будет стоить моей обработки? поэтому я задаю этот вопрос. пожалуйста, помогите мне с лучшим сценарием, который будет соответствовать моему требованию для динамического запроса?

Update

запрос будет выглядеть следующим образом

{ 
    "col": ['fname', 'lname'], 
    "offset": 1, 
    "limit": 25, 
    "order": [ASC, fname, lname], 
    "filter": [ 
    { 
     "col": "id", 
     "op": "=", 
     "val": 8 
    } 
    ] 
} 

это мой запрос и имя таблицы и связанные столбцы в одной таблице.

+1

Можете ли вы дать некоторые образцы видов данных, которые вы имеете в вашей базе данных, типы запросов фильтров вы ожидаете, и как вы ожидаете данные, чтобы посмотреть, когда он работает правильно? –

ответ

4

Просто используйте query builders.

$query = DB::table($tableName); 

// ...some logic... 

foreach ($filters as $filter) { 
    $query->where($filter['col'], $filter['op'], $filter['val']); 
} 

// ...more logic... 

if (isset($limit)) { 
    $query->limit($limit); 
} 

if (isset($columns)) { 
    // get desired columns 
    $records = $query->get($columns); 
} else { 
    $records = $query->get(); 
} 
+0

Отлично. Можете ли вы предложить мне, как определять таблицы на основе запрошенных параметров. Потому что в запросе у меня есть только столбцы и фильтры, но я хочу сделать его общим для всех. Таким образом, есть игра для имен таблиц. – SaMeEr

+0

Должен ли я хранить таблицу и соответствующие им имена столбцов в базе данных и сопоставлять запрошенные параметры с этим столбцом и принимать имя этой таблицы?? Будет ли это влиять на общую производительность? – SaMeEr

Смежные вопросы