В CakePHP 3.0 именованные параметры были удалены (слава богу) в пользу стандартных параметров строки запроса, встроенных в другие прикладные среды.Параметры строки запроса CakePHP 3.0 и переданные параметры
То, что я до сих пор пытаюсь получить мою голову вокруг, хотя в том, что в других рамках MVC, например ASP.NET вы бы передать параметры в ActionResult (такой же, как функция):
Edit(int id = null) {
// do stuff with id
}
И этот метод будет передан id как строка запроса, например: /Edit?id=1
, и вы использовали бы Routing, чтобы он выглядел примерно так: /Edit/1
.
В CakePHP однако ничего прошло внутри параметры функции, как:
function edit($id = null) {
// do stuff with $id
}
Должен быть сделан как передаваемый параметр, как: /Edit/1
, который обходит идею строки запроса, а также необходимость для маршрутизации для улучшения URL.
Если я назвать Params в ссылке для этой правки как:
$this->Html->link('Edit', array('action' => 'edit', 'id' => $post->id));
Я тогда должен сделать:
public function edit() {
$id = $this->request->query('id');
// do stuff with $id
}
Чтобы получить в параметре идентификатор передается. Подумал, что он подберет его в функции, подобной ASP.NET для CakePHP 3.0, но это не так.
Я предпочитаю префикс пройденные значения в ссылке редактирования, а не просто передавая их, поэтому я не придется беспокоиться о порядковых столько же на другом конце, и я знаю, что они есть и т.д.
Имеет любой, кто играл с любым из этих способов передачи данных своим методам в CakePHP и может пролить свет на правильные способы делать вещи и как изменения в версии 3.0 улучшат ситуацию в этой области ...
Почему CakePHP позволяет выбирать между типами, как ему кажется более чистым в ASP.NET от того, что я видел до сих пор, по умолчанию до строк запроса, пока вы не используете маршрутизатор, чтобы сделать его красивой версией (которую вы видите по умолчанию в CakePHP через переданные параметры). Спасибо за информацию Jose, очень ценю. – Cameron