Laravel rest path

10 浏览
0 Comments

Laravel rest path

我有一个route.php文件:

Route::group(array('prefix' => 'api'), function () {
    Route::resource(
        'login', 'TokenController',
        ['only' => ['index', 'create', 'store', 'destroy']]
    );
});

这是php artisan routes的输出:

+--------+---------------------------+-------------------+-------------------------+----------------+---------------+
| Domain | URI                       | Name              | Action                  | Before Filters | After Filters |
+--------+---------------------------+-------------------+-------------------------+----------------+---------------+
|        | GET|HEAD /                |                   | Closure                 |                |               |
|        | GET|HEAD api/login        | api.login.index   | TokenController@index   |                |               |
|        | GET|HEAD api/login/create | api.login.create  | TokenController@create  |                |               |
|        | POST api/login            | api.login.store   | TokenController@store   |                |               |
|        | DELETE api/login/{login}  | api.login.destroy | TokenController@destroy |                |               |
+--------+---------------------------+-------------------+-------------------------+----------------+---------------+

我需要放入哪个路径才能获得TokenController的响应?

我尝试过这个:

`http://localhost/bets/api/login/create?email=vlio20%40gmail.com&password=vlad1q`

结果是Error 404

我还尝试了这个:

http://localhost/bets/api/login/create?email=vlio20%40gmail.com&password=vlad1q

显示一个空白页面(响应代码是我的index.php,一个空的html页面)。

注意1

我使用xampp作为我的Web服务器,bets是包含文件夹。

注意2

我已经配置view.php在public文件夹中查找视图:

'paths' => array(__DIR__.'/../../public')

注意3

使用curl:

curl -i -H "Accept: application/json" -H "Content-Type: applicatio
n/json" -X GET http://localhost/bets/public/index.php/api/login/create?email=vli
o20@gmail.com&password=vlad1q

返回结果如下:

HTTP/1.1 200 OK
Date: Fri, 06 Jun 2014 08:56:58 GMT
Server: Apache/2.4.7 (Win32) OpenSSL/0.9.8y PHP/5.4.22
X-Powered-By: PHP/5.4.22
Content-Length: 723
Content-Type: text/html











    Bets Application



'password' is not recognized as an internal or external command,
operable program or batch file.

0
0 Comments

Laravel rest path问题的出现原因和解决方法

在Laravel中,当我们使用不同的请求方法和路径访问API时,会导致不同的方法被调用。下面是具体的请求方法和路径以及对应的方法调用:

1. 使用GET请求方法访问"http://localhost/bets/api/login"路径,会调用index方法。

2. 使用GET请求方法访问"http://localhost/bets/api/login/create"路径,会调用create方法。

3. 使用POST请求方法访问"http://localhost/bets/api/login"路径,会调用store方法。这个请求通常是通过一个包含"action='http://localhost/bets/api/login'"属性的表单来发送的。

4. 使用POST请求方法访问"http://localhost/bets/api/login/id"路径,会调用delete方法。其中的"id"可以是任意的数字,例如1或20。这个请求也是通过一个包含"action='http://localhost/bets/api/login/1'"属性的表单来发送的。需要注意的是,为了触发DELETE方法,还需要在表单中添加一个隐藏的输入字段,例如:

为了生成这样的表单,我们可以使用类似以下的代码:

Form::open(array('route' => array('api.login.destroy', 1), 'method' => 'delete'))

注意其中的"1"应该是要删除的模型的id,你可以通过在控制器中将模型传递给视图,然后在视图中生成这个表单。更多详细信息可以查阅Laravel的文档。

根据问题描述,当尝试通过浏览器或者curl访问"http://localhost/bets/api/login/create"时,会收到404页面不存在的错误。

解决这个问题的方法是确保路径和请求方法的匹配正确。在这个例子中,可能是因为路径中缺少了一部分,导致Laravel无法找到对应的路由。为了解决这个问题,可以尝试在路径中添加缺失的部分,或者检查路由配置是否正确。

0
0 Comments

Laravel rest path问题的出现原因是将主要的php文件(app.php)放在了app/view目录下,而将所有的js、css等文件放在了public目录下。同时,将laravel的视图路径更改为默认路径(app/views),将app/route.php文件更改为如下内容:

 'api'), function()
{
    Route::resource('login', 'TokenController',
        array('only' => array('index', 'create', 'store', 'destroy')));
});
App::missing(function($exception)
{
    return View::make('index');
});

解决该问题的方法是重新开始,并将主要的php文件(app.php)放回默认的目录(app目录下),将所有的js、css等文件放回默认的public目录。同时,将laravel的视图路径更改为默认路径(app/views),将app/route.php文件更改为以下内容:

 'api'), function()
{
    Route::resource('login', 'TokenController',
        array('only' => array('index', 'create', 'store', 'destroy')));
});
App::missing(function($exception)
{
    return View::make('index');
});

希望这能帮到你!

0