2016-04-22 2 views
2

Ich möchte im Grunde tun:Eloquent: "WHERE (entspricht Aussage) AND (LIKE-Anweisung)"

select * from request where id = 1 and created_at like (today's date); 

aber mit eloquent.

Ich habe versucht:

$query = m_requests::where(['id' => Auth::User()->id, "created_at", "like", "%".date("Y-m-d")."%"]); 

aber das gibt den Fehler:

SQLSTATE[42S22]: Column not found: 1054 Unknown 
column '0' in 'where clause' (SQL: select * from 
from `request` where (`id` = 1 and `0` = created_at 
and `1` = like and `2` = %2016-04-22%)) 

Wer weiß, wie ich erreichen konnte, was ich tun möchte?

Zusammenfassend: Ich möchte die ID gleich der ID angefordert, aber ich möchte das Datum "Wie" das heutige Datum sein (Dies ist, weil ich nur an dem Datum interessiert ist, es erstellt wurde und nicht die Zeit es wurde erstellt).

Prost

+0

Sie wissen, dass 'timestamp' Spalten sind keine Strings? Sie können 'LIKE' nicht mit ihnen verwenden, und es ergibt keinen Sinn. Wenn Sie möchten, dass das Datum irgendwo während des heutigen Tages liegt, dann benutzen Sie den 'BETWEEN' Operator und geben Sie das Anfangs- und Enddatum (' BETWEEN 2016-04-22 00:00:00 AND 2016-04-22 23:59: 59'). – Mjh

+0

Ich habe das nur als Beispiel benutzt. Habe nicht mal nachgesehen, ob es gelaufen ist. Entschuldigung, ich werde es jetzt bearbeiten (wenn ich kann). –

+0

Mögliches Duplikat von [Verwenden von Eloquent ORM in Laravel zum Durchsuchen der Datenbank mit LIKE] (http://stackoverflow.com/questions/13386774/using-eloquent-orm-in-laravel-to-perform-search-of-database) -wie-ähnlich) – Pietro

Antwort

1

dies versuchen, sollte es funktionieren:

m_requests::where('id', '=', Auth::user()->id) 
      ->where('created_at', 'LIKE', '%'.date("Y-m-d").'%');