0

我正在尝试通过以下方式在 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());
    }

用户控制器

 <?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

4 回答 4

2

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

于 2013-08-06T18:34:00.537 回答
2

您使用 artisan 命令创建的是资源控制器

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

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

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

请务必查看有关资源控制器的文档,并务必注意“资源控制器处理的操作”部分,因为这为您提供了哪些方法用于哪些 URI 的关键。

于 2013-08-07T01:37:28.107 回答
1

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

于 2013-08-06T23:54:55.430 回答
0

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

php composer dump-autoload

用编辑的路线刷新自动加载文件。

于 2013-08-07T12:37:41.870 回答