Kohana 3 - Nasıl Varsayılan Route Controller'ın Eylem argüman geçmek yapabilirim?

2 Cevap php

Benim denetleyicisi eylem bir parametre gerektirir, ama ben Varsayılan rota bu parametreyi geçmek için KO3 en yönlendirici alınamıyor. Bu tür bir şey, diğer yolları ile çalışır. Burada açıklamak için bir örnek ...

Bootstrap.php in ...

Route::set('default', '(<controller>(/<action>(/<the_required_param>)))')
 ->defaults(array(
  'controller' => 'DefaultController',
  'action'     => 'index',
  'the_required_param' => 'some_default_value',
 ));

Denetleyici dosyada ...

class Controller_DefaultController extends Controller
{
    public function action_index($the_required_param)
    {
        echo 'value: ' . $the_required_param;
    }
}

2 Cevap

Belirtilen param almak için başka bir yol olacaktır:

$this->request->param('the_required_param');

Ayrıca sırayla yolları tanımlamak ve o gerekeni eşleşmesini sağlamak sağlamalıdır.

Sorun açgözlü bir rota (herhangi uri maç olur) neden oluyor, bu yüzden Router Varsayılan rota ulaştı asla. Aşağıda başvuru için bir örnek ...

// The parenthesis caused this route to match any uri
Route::set('route-4-params', '(<controller>/<action>/<p1>/<p2>/<p3>/<p4>)');

Route::set('default', '(<controller>(/<action>))')
    ->defaults(array(
        'controller' => 'default_controller',
        'action'     => 'index',
        'the_required_param'     => 'somevalue',
    ));