Какая разница между получить или найти в CakePHP 3

Какую разницу ч / б получить или найти в cakephp 3. Почему мы используем get или find в cakephp 3.

3 ответа

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

НО

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

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

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

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

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

$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

Другие вопросы по тегам