2016-04-22 2 views
2

Я в принципе хочу сделать:Eloquent: "WHERE (равно о) и (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%)) 

Кто-нибудь знает, как я мог бы достичь того, что я пытаюсь сделать?

Подводя итог: Я хочу, чтобы идентификатор был равен запрашиваемому идентификатору, но я хочу, чтобы дата была «НРАВИТСЯ» сегодняшней датой (это потому, что меня интересует только дата ее создания, а не время ее был создан).

Приветствия

+0

Вы знаете, что 'timestamp' столбцы не являются строками? Вы не можете использовать 'LIKE' с ними, и это не имеет смысла. Если вы хотите, чтобы дата была где-то в течение сегодняшнего дня, вы используете оператор «BETWEEN», и вы даете ей дату начала и окончания ('BETWEEN 2016-04-22 00:00:00 AND 2016-04-22 23:59: 59'). – Mjh

+0

Я просто использовал это в качестве примера. Даже не проверял, не побежал ли он. Извините, я сейчас отредактирую (если смогу). –

+0

Возможный дубликат [Использование Eloquent ORM в Laravel для выполнения поиска базы данных с использованием LIKE] (http://stackoverflow.com/questions/13386774/using-eloquent-orm-in-laravel-to-perform-search-of-database -Использование типа) – Pietro

ответ

1

Попробуйте это, он должен работать:

m_requests::where('id', '=', Auth::user()->id) 
      ->where('created_at', 'LIKE', '%'.date("Y-m-d").'%'); 
Смежные вопросы