laravel 4宁静的控制器不会工作

时间:2013-08-06 18:26:23

标签: php laravel laravel-4 laravel-3

我试图通过

在mac终端中制作laravel 4控制器
 php artisan controller:make UserController

它工作并将控制器插入文件夹。

在我的route.php中,我添加:

Route::controller('users', 'UserController');

在我的用户控制器中,我做了

return "Hello world"

但是当我输入localhost / users时,它不会在/ users / create中显示任何内容。

我该怎么办?

跟踪错误:

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
open: /Applications/XAMPP/xamppfiles/htdocs/salety/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php
 * @param  Exception  $e
 * @return void
 */
protected function handleRoutingException(\Exception $e)
{
    if ($e instanceof ResourceNotFoundException)
    {
        throw new NotFoundHttpException($e->getMessage());
    }

UserController中

 <?php

 class UserController extends \BaseController {

/**
 * Display a listing of the resource.
 *
 * @return Response
 */
public function index()
{
    return "Hello world!";
}

/**
 * Show the form for creating a new resource.
 *
 * @return Response
 */
public function create()
{
    //
}

/**
 * Store a newly created resource in storage.
 *
 * @return Response
 */
public function store()
{
    //
}

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return Response
 */
public function show($id)
{
    //
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  int  $id
 * @return Response
 */
public function edit($id)
{
    //
}

/**
 * Update the specified resource in storage.
 *
 * @param  int  $id
 * @return Response
 */
public function update($id)
{
    //
}

/**
 * Remove the specified resource from storage.
 *
 * @param  int  $id
 * @return Response
 */
public function destroy($id)
{
    //
}

}

4 个答案:

答案 0 :(得分:2)

使用RESTful控制器时,需要将Index更改为getIndex。

答案 1 :(得分:2)

使用artisan命令创建的内容为resource controller

要使其正常工作,请将routes.php文件更改为:

Route::resource('users', 'UserController');

这将使/ users路由资源并允许它正确响应。

请务必查看资源控制器上的documentation并确保注意由资源控制器处理的操作部分,因为这为您提供了使用哪些方法的关键对于哪个URI。

答案 2 :(得分:1)

对于restfull控制器,你需要使用这个形式getIndex,getCreate,postRegister..etc,你可以使用Route :: controller()或Route :: resource()

答案 3 :(得分:0)

更改routes.php中的内容后,您需要运行

php composer dump-autoload

使用已编辑的路径刷新自动加载文件。