laravel - Laravel 在浏览器 url 中添加 post 方法的路径
问题描述
又是我,我的操作网址有误。当我发送数据(使用提交按钮)时,浏览器会进行重定向,但是会添加它在操作中的 url = "";
错误:
http://localhost:8000/exams/1/questions/exams/1/questions
<form action="exams/{{$exams->id}}/questions" method="POST" enctype="multipart/form-data">
@CSRF
<input type="hidden" name="exam_id" value="{{$exams->id}}">
<div class="form-group">
<label for="description">Descripcion de la pregunta*</label>
<textarea name="description" type="text"
class="form-control" id="description"
aria-describedby="descriptionHelp"
placeholder="Inserte la pregunta">{{ old('description') }}</textarea>
<small id="descriptionHelp"
class="form-text text-muted">Escribe la descripcion de la pregunta.</small>
</div>
<div class="form-group">
<label for="iframe">Video asociado *</label>
<textarea name="iframe" type="text"
class="form-control" id="iframe"
aria-describedby="iframeHelp"
placeholder="Inserte la URL del video">{{ old('iframe') }}</textarea>
<small id="iframeHelp" class="form-text text-muted">Inserta la url del video.</small>
</div>
<div class="form-group d-flex flex-column">
<label for="image">Imagen asociada</label>
<input name="image" type="file" class="py-1">
</div>
<hr />
<button type="submit" class="btn btn-primary">Guardar pregunta</button>
</form>
在web.php
路由中是这样定义的。
Route::resource('/exams', 'Backend\ExamController');
Route::resource('/exams/{exam}/questions', 'Backend\QuestionController');
我的route:list
| | GET|HEAD | exams | exams.index | App\Http\Controllers\Backend\ExamController@index | web |
| | | | | | auth |
| | GET|HEAD | exams/create | exams.create | App\Http\Controllers\Backend\ExamController@create | web |
| | | | | | auth |
| | GET|HEAD | exams/{exam} | exams.show | App\Http\Controllers\Backend\ExamController@show | web |
| | | | | | auth |
| | PUT|PATCH | exams/{exam} | exams.update | App\Http\Controllers\Backend\ExamController@update | web |
| | | | | | auth |
| | DELETE | exams/{exam} | exams.destroy | App\Http\Controllers\Backend\ExamController@destroy | web |
| | | | | | auth |
| | GET|HEAD | exams/{exam}/edit | exams.edit | App\Http\Controllers\Backend\ExamController@edit | web |
| | | | | | auth |
| | POST | exams/{exam}/questions | questions.store | App\Http\Controllers\Backend\QuestionController@store | web |
| | | | | | auth |
| | GET|HEAD | exams/{exam}/questions | questions.index | App\Http\Controllers\Backend\QuestionController@index | web |
| | | | | | auth |
| | GET|HEAD | exams/{exam}/questions/create | questions.create | App\Http\Controllers\Backend\QuestionController@create | web |
| | | | | | auth |
| | GET|HEAD | exams/{exam}/questions/{question} | questions.show | App\Http\Controllers\Backend\QuestionController@show | web |
| | | | | | auth |
| | PUT|PATCH | exams/{exam}/questions/{question} | questions.update | App\Http\Controllers\Backend\QuestionController@update | web |
| | | | | | auth |
| | DELETE | exams/{exam}/questions/{question} | questions.destroy | App\Http\Controllers\Backend\QuestionController@destroy | web |
| | | | | | auth |
| | GET|HEAD | exams/{exam}/questions/{question}/edit | questions.edit | App\Http\Controllers\Backend\QuestionController@edit | web |
我的方法商店看起来像这样
public function store(QuestionStoreRequest $request){
$questions = new Question();
$questions->description = $request->get('description');
$questions->iframe = $request->get('iframe');
$questions->image = $request->get('image');
$questions->exam_id = $request->get('exam_id');
$questions->category_id = $request->get('category_id');
$questions->save();
return view('question.index');
}
我这样声明是因为,当我在没有通过考试 ID 的情况下这样做时,我收到一条错误消息,提示“此属性不可用”。
解决方案
我认为您的问题出在已定义的路线上。您必须像这样在您的路线中使用 Post 功能。
Route::resource('/exams', 'Backend\ExamController');
Route::post('/exams/{exam}/questions', 'Backend\QuestionController@store');
推荐阅读
- r - 使用条件和子类别过滤(分层)数据
- elasticsearch - 在 ruby fiter 下使用 Time.parse 时,Logstash 解析失败
- java - Kubernetes 外部连接到 Mongodb 集群
- javascript - 一个函数中有多个事件处理程序
- elixir - JSON 响应的单元测试,匹配 JSON 响应以断言键和值
- r - 在库函数中分配变量
- angular - Angular 6.x 元标记 OG:描述不适用于 FB
- unit-testing - Rails 升级后的神秘 rspec 错误
- javascript - 如何使用 JS 动态创建 SVG 文本元素
- python - 处理的 python 是固定在一个 CPU 上,还是可以使用多个 CPU 超时?