2016-04-22 2 views
2

私は基本的にやりたい:雄弁: "WHERE(文が等しい)AND(LIKE文で)"

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

が、雄弁を使用。

私が試した:

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

をそれがエラーを返します:

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%)) 

誰もが、私は私がやろうとしています何を達成できる方法を知っていますか?

要約: IDは要求されたIDと同じになりますが、今日の日付は「LIKE」になります(これは、作成された日付にのみ興味があるためです作成されました)。

乾杯

+0

あなたは 'timestamp'列が文字列でないことを知っていますか?あなたはそれらに「LIKE」を使うことはできません。それは意味をなさないでしょう。今日のどこかに日付を入れたい場合は、 'BETWEEN'演算子を使い、開始日と終了日を指定します(' BETWEEN 2016-04-22 00:00:00 AND 2016-04-22 23:59: 59 ')。 – Mjh

+0

私は例としてそれを使っていました。それが実行されたかどうかを確認するためにチェックしていない。申し訳ありませんが、今編集します(できる場合)。 –

+0

[LaravelでEloquent ORMを使用してLIKEを使用したデータベースの検索を実行する]の可能な複製(http://stackoverflow.com/questions/13386774/using-eloquent-orm-in-laravel-to-perform-search-of-database) -using-like) – Pietro

答えて

1

は、それが動作するはずです、これを試してみてください:

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