【发布时间】:2016-10-16 14:45:45
【问题描述】:
所以我正在使用 Laravel 5.2 开发一个 API,我正面临一个重要问题。
我有一个 UserController 来管理我的应用程序的用户。
这是我的 routes.php 文件:
Route::group(array('prefix' => 'api/v1'), function() {
Route::post('user', 'UserController@store');
});
我的 UserController 是这样定义的:
class UserController extends Controller {
public function index() {
return 'Hello, API';
}
public function create(){
}
public function store(Request $request) {
$user = new User;
$user->email = $request->email;
$user->password = $request->password;
$user->fbId = $request->fbId;
$user->ggId = $request->ggId;
$user->firstName = $request->firstName;
$user->lastName = $request->lastName;
$user->imageUrl = $request->imageUrl;
$user->country = $request->country;
$user->mobile = $request->mobile;
$user->gender = $request->gender;
$user->client = $request->client;
$user->save();
return Response::json(array(
'error' => false,
'userId' => $user->id),
200
);
}
public function update(Request $request, $id) {
}
}
这是php artisan route:list的输出
+--------+--------+-------------+------+-------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+--------+-------------+------+-------------------------------------------+------------+
| | POST | api/v1/user | | App\Http\Controllers\UserController@store | web |
+--------+--------+-------------+------+-------------------------------------------+------------+
我正在使用 Postman 来测试我的 POST 请求。 每次我向 /api/v1/user 发出 POST 请求时,都会收到“405 Method Not Allowed”错误。
我错过了什么吗?
我应该做些什么来解决这个问题?
【问题讨论】:
-
你为什么用
Route::resource('user', 'UserController');而不是Route::post('user','userController@store')? -
@Kisaragi - 如果我使用
Route::post('user', 'UserController@store'),我会得到“405 Method Not Allowed”。 -
每次都调用索引方法。请只评论一次索引方法并查看结果。也许它有效!
-
@HirenGohel - 我认为它不应该每次都调用 index() 。 Anw,如果我这样做,我会收到“500 内部服务器错误”。
-
您可以尝试删除组中的“之前”过滤器,看看它是否有效吗?我假设您在来自 Postman 时没有获得授权。