Метод whereColumn
Метод whereColumn применяется к запросу Eloquent
или Query Builder и возвращает тот же запрос,
дополненный условием сравнения двух колонок. Первым
параметром передаётся имя колонки, вторым - оператор
сравнения, третьим - имя колонки для сравнения.
Если оператор не указан, используется равенство.
Синтаксис
<?php
Model::whereColumn($column, $operator, $column2);
?>
Пример
Давайте найдём пользователей, у которых поле 'created_at'
равно полю 'updated_at':
<?php
use AppModelsUser;
$users = User::whereColumn('created_at', 'updated_at')->get();
foreach ($users as $user) {
echo $user->name;
}
?>
Результат выполнения кода:
["user 1", "user 2", "user 3"]
Пример
Давайте найдём пользователей, у которых 'age' больше
или равно 'experience':
<?php
use AppModelsUser;
$users = User::whereColumn('age', '>=', 'experience')->get();
foreach ($users as $user) {
echo $user->name;
}
?>
Результат выполнения кода:
["user 1", "user 3"]
Пример
Метод можно использовать с массивом условий для одновременного сравнения нескольких колонок:
<?php
use AppModelsUser;
$users = User::whereColumn([
['age', '>=', 'experience'],
['salary', '>', 'bonus']
])->get();
foreach ($users as $user) {
echo $user->name;
}
?>
Результат выполнения кода:
["user 2"]