laravel, где значение предложения и имя столбца - PullRequest
0 голосов
/ 09 мая 2018

Как я могу сделать это в предложении laravel where?

select * from table_samples where 1 = id 
// basically i can do like where id = 1

select * from table_samples where 1000 > rate
 // basically i can do like where rate < 1000

select * from table_samples where 'bogart' = name
 // basically i can do like where name = "bogart"

Суть в том, что если вы поменяете column и value, это работает на mysql, но если я сделаю это в laravel, где предложение не работает?

Что-то вроде

TableSample::where('1','id')->first();
TableSample::where('1000','>','rate')->first();
TableSample::where('bogart','name')->first();
// throws an error undefined column name 1, 100, and bogart.

// I know laravel . These are the correct query
TableSample::where('id','1')->first();
TableSample::where('rate','<','1000')->first();
TableSample::where('name','bogart')->first();

Есть ли в laravel функции where, которые могут принимать или определять, пытаетесь ли вы поменять местами value и column?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Методы whereRaw и orWhereRaw могут использоваться для вставки необработанного предложения where в ваш запрос

TableSample::whereRaw('1 = id')->first();

https://laravel.com/docs/5.6/queries#raw-methods

0 голосов
/ 09 мая 2018

Вы используете DB::raw() для этого.

TableSample::whereRaw('? = id', [1])->first();

Просто убедитесь, что вы используете подстановку параметров, как описано выше, чтобы предотвратить создание уязвимостей SQL-инъекций.

https://laravel.com/docs/5.6/queries#raw-expressions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...