又是我,我的操作网址有误。当我发送数据(使用“提交”按钮)时,浏览器会进行重定向,但会添加其实际使用的网址=“”;
错误:
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的情况下进行此操作时,出现错误消息“此属性不可用”。
答案 0 :(得分:0)
我认为您的问题出在确定的路线上。您必须在这样的路线中使用发布功能。
Route::resource('/exams', 'Backend\ExamController');
Route::post('/exams/{exam}/questions', 'Backend\QuestionController@store');