2016-10-05 18 views

ответ

0

Получить обычно используется для получения одного объекта по первичному ключу.

$this->Models->get($id);//here $id is your tables primary key 

В найти мы оштрафовать данные.

$this->Models->find('all');//get all the data 

$this->Models->find('all')->first(); //get the first row 

Он может быть использован, чтобы найти как все данные, а также первые данные. Здесь мы также можем поставить условия

Перейдите по этой ссылке для получения дополнительной информации

http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html

+1

также стоит отметить, что get выбрасывает исключение, если операция не находит никакого результата – arilia

+0

@arilia да, мы должны поймать это исключение – sradha

1

При использовании find() метода, то вы можете передать состояние, как вы хотите, для извлечения данных после фильтрации от источника дб. find('first') или find('all')->first() ведет себя одинаково.

НО

get($id) будет применяться условие только поля первичного ключа таблицы. Это означает предоставление результата для одной записи только из-за состояния первичного ключа.

При использовании метода get(), если запись не найдена из источника db, тогда CakePHP выбрасывает NOT Found Exception. Так что это очень полезно, если вы даете ответ как НЕ НАЙДЕН - 404 Например, страница профиля, страница с подробностями блога..etc

0

Вы можете вызвать find() на экземпляр таблицы, который создает объект Query и возвращает его, и вы можете продолжить цепочку других методов, таких как where(), ->select() и объекты запрос ленивы, и не будут выполняться, если вы звоните all(), toArray(), first(), firstOrFail() и т.д., больше объяснений здесь https://book.cakephp.org/3.0/en/orm/query-builder.html

в то время как get($primaryKey, $options = []) вернет запись, если найдены или бросков не найдено исключение, если нет записи, он внутренне строит запрос и вызовы firstOrFail()