php – Laravel POST调用返回index()函数而不是store()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel POST调用返回index()函数而不是store(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7504字,纯文字阅读大概需要11分钟。
内容图文
![php – Laravel POST调用返回index()函数而不是store()](/upload/InfoBanner/zyjiaocheng/827/2ce809ebfd5744c184c5a163a53df3bf.jpg)
我正在写laravel中的第一个应用程序,这对于新的laravel开发人员来说是非常好的环境.缩短故事:我通过php artisan命令创建了两个雄辩的模型,并以相同的方式创建了相应的控制器.其中一个是“成员”模型,我在控制器的类中创建了公共函数,但是当我尝试POST到应该使用store()函数的路由时,该路由实际上使用了index()函数.
控制器:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Member;
use Response;
class MemberController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$members = Member::all();
return Response::json([
'data' => $this->transformCollection($members)
], 200);
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
//
}
/**
* @param Request $request
* @return mixed
*/
public function store(Request $request)
{
if(! $request->email){
return Response::json([
'error' => [
'message' => 'Please Provide email'
]
], 422);
}
$Member = Member::create($request->all());
return Response::json([
'message' => 'Member Created Succesfully',
'data' => $this->transform($Member)
]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return Response
*/
public function show($id)
{
$Member = Member::find($id);
if(!$Member){
return Response::json([
'error' => [
'message' => 'Member does not exist'
]
], 404);
}
return Response::json([
'data' => $this->transform($Member)
], 200);
}
/**
* 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(Request $request, $id)
{
if(! $request->user_id){
return Response::json([
'error' => [
'message' => 'Please Provide user_id'
]
], 422);
}
$Member = Member::find($id);
if($request->email){
$Member->email = $request->email;
}
if($request->first_name){
$Member->first_name = $request->first_name;
}
if($request->last_name){
$Member->last_name = $request->last_name;
}
if($request->phone){
$Member->phone = $request->phone;
}
if($request->address_one){
$Member->address_one = $request->address_one;
}
if($request->address_two){
$Member->address_two = $request->address_two;
}
if($request->zip_code){
$Member->zip_code = $request->zip_code;
}
if($request->city){
$Member->city = $request->city;
}
if($request->county){
$Member->county = $request->county;
}
if($request->state_region){
$Member->state_region = $request->state_region;
}
if($request->country){
$Member->country = $request->country;
}
if($request->job_title){
$Member->job_title = $request->job_title;
}
if($request->company){
$Member->company = $request->company;
}
if($request->clearance_level){
$Member->clearance_level = $request->clearance_level;
}
$Member->save();
return Response::json([
'message' => 'Member Updated Succesfully',
'data' => $this->transform($Member)
]);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return Response
*/
public function destroy($id)
{
Member::destroy($id);
}
/**
* @Description Data transform
* @param $contacts
* @return array
*/
private function transformCollection($contacts)
{
return array_map([$this, 'transform'], $contacts->toArray());
}
/**
* @Description Data transform
* @param $contact
* @return array
*/
private function transform($contact)
{
return [
'id' => $contact['id'],
'fname' => $contact['first_name'],
'lname' => $contact['last_name'],
'email' => $contact['email'],
'address' => $contact['address_one']
];
}
}
我的模型是:
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class Member extends Model
{
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'members';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'email',
'first_name',
'last_name',
'phone',
'address_one',
'address_two',
'zip_code',
'city',
'county',
'state_region',
'country',
'job_title',
'company',
'clearance_level',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
];
}
我的php工匠路线:列表是:
+--------+-----------+-------------------------------+------------------------+--------------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-------------------------------+------------------------+--------------------------------------------------------+------------+
| | GET|HEAD | / | | Closure | |
| | POST | api/v1/members | api.v1.members.store | App\Http\Controllers\MemberController@store | |
| | GET|HEAD | api/v1/members | api.v1.members.index | App\Http\Controllers\MemberController@index | |
| | GET|HEAD | api/v1/members/create | api.v1.members.create | App\Http\Controllers\MemberController@create | |
| | DELETE | api/v1/members/{members} | api.v1.members.destroy | App\Http\Controllers\MemberController@destroy | |
| | GET|HEAD | api/v1/members/{members} | api.v1.members.show | App\Http\Controllers\MemberController@show | |
| | PUT|PATCH | api/v1/members/{members} | api.v1.members.update | App\Http\Controllers\MemberController@update | |
| | GET|HEAD | api/v1/members/{members}/edit | api.v1.members.edit | App\Http\Controllers\MemberController@edit | |
| | GET|HEAD | auth/login | | App\Http\Controllers\Auth\AuthController@getLogin | web,guest |
| | POST | auth/login | | App\Http\Controllers\Auth\AuthController@postLogin | web,guest |
| | GET|HEAD | auth/logout | | App\Http\Controllers\Auth\AuthController@getLogout | web,guest |
| | POST | auth/register | | App\Http\Controllers\Auth\AuthController@postRegister | web,guest |
| | GET|HEAD | auth/register | | App\Http\Controllers\Auth\AuthController@getRegister | web,guest |
| | POST | password/email | | App\Http\Controllers\Auth\PasswordController@postEmail | web,guest |
| | GET|HEAD | password/email | | App\Http\Controllers\Auth\PasswordController@getEmail | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\PasswordController@postReset | web,guest |
| | GET|HEAD | password/reset/{token} | | App\Http\Controllers\Auth\PasswordController@getReset | web,guest |
+--------+-----------+-------------------------------+------------------------+--------------------------------------------------------+------------+
路线定义:
Route::group(['prefix' => 'api/v1'], function(){
Route::resource('members', 'MemberController');
});
我试过mysite.us/api/v1/members和mysite.us/api/v1/members/–他们都在POST上返回index().
最佳答案:
您的问题已由@Arangor here解决
引用:
The problem was adding a trailing ‘/’ to the URL. So, instead of using this URL:
mydomain.com/api/v1/messages/
I tried with this one:
mydomain.com/api/v1/messages
and it worked
内容总结
以上是互联网集市为您收集整理的php – Laravel POST调用返回index()函数而不是store()全部内容,希望文章能够帮你解决php – Laravel POST调用返回index()函数而不是store()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。