Гипотеза: я думаю, что это множественное число ресурса или модели, я не уверен.
Мой код:
Route web:
Route::group(['middleware'=> 'auth'], function() {
Route::resource('relatedPersons', 'RelatedPeople\RelatedPeopleController')
->only(['store','update','destroy'])
->middleware('can:relatedPeoples');
});
Примечание: модель is relatedPeople, но для целей тестирования в определении маршрута оставьте это как relatedPersons.
RelatedPeople (Model):
<?php
namespace App;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
class RelatedPeople extends Model
{
protected $fillable = [
'name',
'phone',
'email',
'detail',
'case_report_id'
];
public function getCreatedAtAttribute($value)
{
return Carbon::parse($value)->format('Y-m-d H:m');
}
public function getDetailAttribute($value)
{
return $value ?? "Sin detalle.";
}
}
RelatedPeopleController:
<?php
namespace App\Http\Controllers\RelatedPeople;
use App\Http\Controllers\Controller;
use App\RelatedPeople;
use Illuminate\Http\Request;
class RelatedPeopleController extends Controller
{
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$rules = [
'email'=> "required|unique:related_people"
];
$this->validate($request, $rules);
$relatedPeople = RelatedPeople::create($request->all());
return response()->json($relatedPeople, 200);
}
}
Frontend vuejs with ax ios:
onSubmit() {
let formData = new FormData(this.$refs.create)
formData.append('case_report_id', this.case_id)
axios.post('relatedPersons', formData).then( (response) => {
if ( response.status == 200 ) {
this.$emit('addRelatedPerson', response.data)
this.$toasterE.success("Related people create", { mark:1 })
this.$nextTick(() => {
this.$refs.form.reset()
this.form = form()
});
}
}).catch( (err) => {
this.exception(err)
})
}
Приведенный выше код каждый раз, когда я запускаю, попадает в уловку и возвращает эту ошибку: {"error": "Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD, PUT, PATCH, DELETE.", "code": 405}
Проверки, которые я уже сделал:
- изменить имя ресурса
- В модели добавить имя таблицы protected $ table = "related_people"
- Определите для контроллера метод get (index), чтобы знать, что по крайней мере, запрос доходит до контроллера и работает только метод GET, остальные не работают.
Я буду ke ep ищет решение, заранее спасибо.