В bootstrap.php
, где Вы устанавливаете маршруты, мне нелегко заставлять их работать. Я прочитал некоторую документацию только что, что я, может казаться, не нахожу снова, что это объясняет их. Вот один из моих примеров
Route::set('products', 'products/(type)', array('type' => '.+'))
->defaults(array(
'controller' => 'articles',
'action' => 'view_product',
'page' => 'shock-absorbers',
));
Я думал, что это будет означать запрос как products/something
загрузился бы articles
контроллер, и action_view_product()
метод. Но я не могу заставить это работать.
Кто-то может объяснить мне точно, как они работают, и каковы все параметры метода?
Это не int и не guid; из файла справки MSDN ...
-121--2805885-Идентификатор сеанса ASP.NET представляет собой случайно сгенерированное число, закодированное в 24-символьный ряд, состоящий из строчных символов от a до z и чисел от 0 до 5.
В Python 2.x input ()
«вычисляет» введенное значение. (см. справка (ввод)
). Поэтому при нажатии клавиши k
, input ()
пытается найти, что такое k
. Поскольку он не определен, возникает исключение NameError
.
Используйте raw _ input ()
в Python 2.x. В 3.0x фиксирован вход ()
.
Если вы действительно хотите использовать input ()
(и это действительно не рекомендуется), то процитируйте вашу переменную k
следующим образом:
>>> UserName = input("Please enter your name: ")
Please enter your name: "k"
>>> print UserName
k
-121--2461691- Я подумал, что это будет означать запрос: как продукты/что-то загружается контроллер изделий и action _ view _ product controller . Но я не может заставить его работать.
Вы ошиблись жирным шрифтом. Он фактически загрузит action_view_product метод контроллера статей:
class Controller_Articles extends Controller {
public function action_view_product() {
$params = $this->request->param();
// if the uri is `products/something' then $params['type'] == 'something'
}
}
EDIT:
О Боже мой о Боже, почему я не заметил!!!
Фактическая проблема лежит в вашем образце маршрута! Это должны были быть products/( < тип >)
с угловыми скобками. Они намекнут Кохане, что «тип» должен быть именем параметра, а не литералом.
Скобки указывают на дополнительные части (Regex будет соответствовать, если они отсутствуют). Они могут быть статическими и / или содержат именованные переменные. Угловые скобки указывают на названную переменную в маршруте, который доступен в контроллере через:
$this->request->param('type');
Я написал официальное руководство по маршрутизации, которое вы можете прочитать здесь , он должен ответить на все ваши вопросы.
UFF, извините, ниже, тогда и больше, то знаки не показывают правильно
'products/(type)' should be 'products/(<type>)'