2015-07-03 6 views
0

Я работаю с Laravel 4, и мне нужно установить некоторые запросы к базе данных в файлах конфигурации. Например:Laravel 4 - динамическая конфигурация

config/prod/queries.php 
config/stage/qieries.php 

И я хочу, чтобы называть их как

DB::connection ('mysql')->select (Config::get('queries.test');); 

Дело в том, что мой запрос имеет несколько параметров, так и некоторые фильтры. Например:

select * from table where some_date between '$today' and '$tomorrow' 

И если я просто поместить этот запрос в конфигурационных файлах и назвать его, конечно, исключения неизвестных переменных $today и $tomorrow встречается,.

Как это сделать?

ответ

1

В файле конфигурации

  return array(
       "query1"=> "select * from table where some_date between ? and ?" 
      ); 

В программе, например, контроллер

  $query = Config::get("query")['query1']; 
      $result = DB::select($query,array("1970-01-01","2014-01-01")); 
0

Как об этом подходе:

конфигурационный файл:

return [ 
    "select:logs-between-dates" => "select * from logs where date between ? and ?", 
    "select:logs-not-between-dates" => "select * from logs where date not between ? and ?" 
]; 

класс, который расширяет Логика БД:

class Query extends DB { 
    public static $queries = []; 

    public static function select($name, $params = []) { 
    return self::select(self::$queries['select:'.$name], $params); 
    } 
} 

инициализации:

Query::$queries = Config::get("query"); 

использование:

$result = Query::select('logs-between-dates', ["1970-01-01","2014-01-01"]); 
Смежные вопросы