Laravel plusieurs clauses where
J'ai une exigence d'ajouter plusieurs où l'une des clauses d'un Laravel requête SQL.
Pour l'instant mon code PHP a été:
date_default_timezone_set('America/Los_Angeles');
$today = getdate();
$year = $today['year'];
$month = $today['mon'];
$day = $today['mday'];
$today_ = $day.'-'.$month.'-'.$year;
$result = DB::table('task')
->select('*')
->where(
['rowstate', '<>', 'Ready'],
['DATE_FORMAT(due_date, "%d-%m-%y")', '<', $today_])
->get();
Mais le code ci-dessus retourne:
Column not found: 1054 Unknown column '0' in 'where clause'
(SQL: select * from `task_tab` where (`0` = rowstate and `1` = <> and `2` = Ready))
Je veux générer ci-dessous l'instruction SQl:
SELET *
FROM task
WHERE rowstate <> 'Ready'
AND DATE_FORMAT(due_date, "%d-%m-%y") < $today
Vous devez vous connecter pour publier un commentaire.
Vous avez 2 solutions possibles.
Au lieu de:
vous pouvez utiliser
ou
vous pouvez utiliser la syntaxe de tableau comme ceci:
Donc, pour résumer, vous avez été absent en joignant vos données dans l'array, et vous avez besoin d'utiliser
DB::raw
dans le cas où vous n'avez pas utiliser des noms de colonneVous ne pouvez pas utiliser la fonction sql directement dans laravel de la classe. Vous avez besoin d'utiliser
DB::raw()
de même.Afin que votre requête sera comme :
Essayer cette