[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Kohana
Страницы: 1, 2
mmsgold
азы коханы, стартовый контроллер welcome, немного модифицировал его, и он перестал работать,

class Controller_Welcome extends Controller {

public function action_index($name)
{
$this->response->body('hello,'.$name);
}

передаю ему параметр в адресной строке, а он ругается

ErrorException [ Warning ]: Missing argument 1 for Controller_Welcome::action_index(), called in C:\OpenServer\domains\kohana.loc\public\system\classes\Kohana\Controller.php on line 84 and defined
AllesKlar
С коханой не знаком, но английским по белому написано, что пропущен аргумент для функции public action_index($name)

Значит, что рутер либо фигово разобрал url , либо не сгенерировал дефолтное значение для контроллера, либо фигово передал это значение в контроллер.

Как минимум, поможет
public function action_index($name = '')


_____________
[продано копирайтерам]
Invis1ble
Потому что в экшены не передаются никакие аргументы.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

mmsgold
похоже роутер не цепляет параметр который я передаю в контроллер
, при таком раскладе

public function action_index($name= '')
{
$this->response->body('hello,'.$name);
}


http://kohana.loc/welcome/index/mishel


он мне просто выдает

hello,

mmsgold
Invis1ble, методы(экшены), не принимают параметры?
mmsgold
все вроде нашел ответ
http://www.sdelaysite.com/php/php-25
Invis1ble
Цитата (mmsgold @ 27.09.2015 - 17:00)
все вроде нашел ответ
http://www.sdelaysite.com/php/php-25

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

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

mmsgold
ок, sad.gif
Invis1ble
я серьезно, читай официальную документацию
если там что-то не нашел - тогда уже искать решения в других местах
это, кстати, касается не только коханы

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

mmsgold
почитал, вроде все понятно, но из данного скрипта выводится только действие по умолчанию

public function action_index()
{
$name = $this->request->param('name','anon');
$this->response->body('hello,'.$name);
}


http://kohana.loc/welcome/index/mishel

hello,anon
mmsgold
переписал весь экшн и все заработало
AllesKlar
mmsgold
$this->request->query('name', 'anon');


Цитата (mmsgold @ 27.09.2015 - 15:45)
переписал весь экшн и все заработало

Ну так и покажи, где ошибка, другим на будущее

_____________
[продано копирайтерам]
mmsgold
вот это прикол
из документации
Parameters
Parameters are accessed by calling $this->request->param('name') where name is the name defined in the route.

// Assuming Route::set('example','<controller>(/<action>(/<id>(/<new>)))');

public function action_foobar()
{
$id = $this->request->param('id');
$new = $this->request->param('new');
If that parameter is not set it will be returned as NULL. You can provide a second parameter to set a default value if that param is not set.

?

public function action_foobar()
{
// $id will be false if it was not supplied in the url
$id = $this->request->param('user',FALSE);


кто нибудь может объяснить почему так работает
public function action_index()
{
$id = $this->request->param('id');
$this->response->body('hello,'.$id);
}

а так уже нет
public function action_index()
{
$user = $this->request->param('user');
$this->response->body('hello,'.$user);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.