Laravel 4 [寄存器]方法不存在



我已经在BaseController.php中设置了:

public $restful = true;

,然后在我的UserIndex控制器(当然要扩展基本控制器)中,我以这种方式编写了这些方法:

class Userindex extends BaseController
{
    protected $layout = "main";
    public function getIndex ()
    {
      // $data['header'] = View::make('header');
        $this->layout = View::make("user.index")
               ->with("title","SHOT :: Welcome to SHOT Website. Read About Us to know us more."); 
    }
    function getRegister ()
    {
      // $data['header'] = View::make('header');
        $this->layout = View::make("user.register")
               ->with("title","SHOT :: Registration"); 
    }
}

但是,每当我访问URL用户/注册时,它会引发错误的错误。索引方法也会发生这种情况。如果我从它们中删除get前缀,则它们只是出现。有人可以告诉什么问题?

这也是我用来访问它们的路线:

/**
 * View::register
 */
Route::get("user/register", array("as"=>"register", 'uses'=>"userindex@register") );
/**
 * View::index(or home page)
 */
Route::get("user/index", array("as"=>"user_index", 'uses'=>"userindex@index") );

您正在做它,您正在遇到寄存器错误,因为您不通过布局显示要显示的内容,而您使用werng的路线

示例。

创建一个名为main的布局文件,看起来像

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{{ $title }}</title>
</head>
<body>
{{ $content }}
</body>
</html>

您的基本控制器

class BaseController extends Controller {
    $layout = 'main';
    /**
     * Setup the layout used by the controller.
     *
     * @return void
     */
    protected function setupLayout()
    {
        if ( ! is_null($this->layout))
        {
            $this->layout = View::make($this->layout);
        }
    }
}

现在您已经进行了布局设置,而Socond问题是您的路线,示例

Route::get("user/register", array("as"=>"register", 'uses'=>"userindex@register") )

此部分userindex@register是完全错误的,您需要指向控制器和Actuall方法

所以它必须看起来像这个

创建一个用户控制器UserController.php包含以下

的内容
<?php
class UserController extends BaseController {
    public function register() 
    {
        $this->layout->title = "SHOT :: Registration";
        $this->layout->content = View::make("user.register"); 
    }
}

您的路线将需要以下内容,URL将指向的内容,控制器名称和控制器方法。

因此,如果您需要寄存器路线,则需要以下

Route::get('register', 'UserController@register');

现在,如果您浏览浏览器以注册它将起作用。

注意:在我上方向您展示的布局中,您需要传递显示

的内容

SO $this->layout->title在控制器中包含布局标题,"布局"中的标题变量,在$this->layout->content中,您存储了实际视图,在布局中称为$content变量。

希望我能够帮助

您实际在寻找

的寄存器功能/方法
route :: get("用户/寄存器",array(" as" =>" register",'use =>" userIndex@register"));

不存在。应该是

路由:: get("用户/寄存器",array(" as" =>" register",'use =>" userIndex@getregister"));

route :: get(" user/index",array(" as" =>" user_index",'use =>" userIndex@getindex"));

最新更新