Я пытаюсь получить видео из моей видео базы данных, выбор основан на уникальной комбинации external_id
и language_id
(оба целых числа). Я попробовал следующий код, но похоже, что findFirst()
только подбирает первый критерий
$video = Video::findFirst("language_id=" . $language->id . " and external_id=" . $external->id);
Может ли кто-нибудь помочь мне правильно использовать findFirst с несколькими критериями?
Попробуйте привязать свои параметры к их конкатенации. Безопаснее, и он может определить область ошибок
$video = Video::findFirst( [ 'columns' => '*', 'conditions' => 'language_id = ?1 AND external_id = ?2', 'bind' => [ 1 => $language->id, 2 => $external->id, ] ] );
Методы find () и findFirst () принимают ассоциативный массив, определяющий критерии поиска:
$robot = Robots::findFirst(array( "type = 'virtual'", "order" => "name DESC", "limit" => 30 )); $robots = Robots::find(array( "conditions" => "type = ?1", "bind" => array(1 => "virtual") )); // What's the first robot in robots table? $robot = Robots::findFirst(); echo "The robot name is ", $robot->name, "\n"; // What's the first mechanical robot in robots table? $robot = Robots::findFirst("type = 'mechanical'"); echo "The first mechanical robot name is ", $robot->name, "\n"; // Get first virtual robot ordered by name $robot = Robots::findFirst(array("type = 'virtual'", "order" => "name")); echo "The first virtual robot name is ", $robot->name, "\n";
Продолжайте читать здесь: Главная Doc – Поиск записей