laravel - ReflectionException (-1) 类 App\Http\Controllers\AnswersController 不存在
问题描述
我想使用表单将数据保存在数据库中
我尝试使用带有输入文本、收音机...和控制器的表单通过 post 方法将数据保存在数据库中
控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use App\Survey;
use App\Answer;
use App\Http\Requests;
class Answerscontroller extends Controller
{
public function store(Request $request, Survey $survey)
{
$request->validate([
'answer'=>'required'
]);
$answers = new Answer([
'answer' => $request->get('answer'),
'commentaire' => $request->get('commentaire'),
'user_id' => auth()->id(),
'last_ip' => request()->ip(),
'survey_id' => $survey->id
]);
$answers->save();
return redirect('/survey')->with('success', 'Stock has been added');
}
}
看法:
{!! Form::open(array('action'=>array('AnswersController@store', $survey->id))) !!}
@forelse ($survey->questions as $key=>$question)
<p class="flow-text">Question {{ $key+1 }} - {{ $question->title }}</p>
@if($question->question_type === 'text')
<div class="form-group">
<div class="input-field col s12">
<input id="answer" type="text" name="{{ $question->id }}[answer]">
<label for="answer">Answer</label>
</div>
</div>
@elseif($question->question_type === 'textarea')
<div class="form-group">
<div class="input-field col s12">
<textarea id="textarea1" class="materialize-textarea" name="{{ $question->id }}[answer]"></textarea>
<label for="textarea1">Textarea</label>
</div>
</div>
@elseif($question->question_type === 'radio')
@foreach($question->option_name as $key=>$value)
<p style="margin:0px; padding:0px;">
@if($value === 'else')
<div class="form-group" style="margin-left: 20px;">
<input name="answer" class="custom-control-input" type="radio" id="{{ $value }}" value="{{$value}}"/>
<label class="custom-control-label" for="{{ $value }}">{{ $value }}</label>
<div id="textboxes" style="display: none">
<br>
<textarea class="form-control" name="commentaire" id="exampleFormControlTextarea1" rows="3" placeholder="Write a large text here ..."></textarea>
</div>
</div>
@else
<p style="margin:0px; padding:0px;">
<div class="form-group" style="margin-left: 20px;">
<input name="answer" class="custom-control-input" type="radio" id="{{ $value }}" value="{{ $value}}"/>
<label class="custom-control-label" for="{{ $value }}">{{ $value }}</label>
</div>
</p>
@endif
@endforeach
@elseif($question->question_type === 'checkbox')
@foreach($question->option_name as $key=>$value)
<p style="margin:0px; padding:0px;">
<div class="form-group">
<input type="checkbox" id="{{ $value }}" name="answer" value="{{$value}}"/>
<label for="{{$value}}">{{ $value }}</label>
</div>
</p>
@endforeach
@endif
<div class="divider" style="margin:10px 10px;"></div>
@empty
<span class='flow-text center-align'>Nothing to show</span>
@endempty
<div class="form-group">
{{ Form::submit('Submit Survey', array('class'=>'btn btn-success mt-4')) }}
</div>
{!! Form::close() !!}
模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Answer extends Model
{
protected $fillable = ['answer','commentaire','user_id','survey_id','last_ip'];
protected $table = 'Answer';
public function survey() {
return $this->belongsTo(\App\Survey::class);
}
public function question() {
return $this->belongsTo(\App\Question::class);
}
public function user() {
return $this->belongsTo('App\User');
}
}
错误:
ReflectionException (-1) 类 App\Http\Controllers\AnswersController 不存在
请你帮我修复那个ps:在路由器中,我把post方法和控制器
解决方案
问题在于命名。你的控制器Answerscontroller
不过是 Laravel Looks fo AnswersController
with capital C
。所以,检查你的控制器名称应该是AnswersController.php
和类名(在文件AnswersController.php
中)应该是AnswersController
。
推荐阅读
- git - springboot - 如何从 manifest.yml 或 Java_Opts 访问私有 git 存储库文件
- c++ - 如何在 C++ 中调用单例实例的析构函数?
- javascript - jQuery多选只是从一个选择框复制到另一个
- android - 通过反向代理服务器将 socket.io android 客户端连接到套接字服务器
- azure - 将变量从 json 文件传递到 Azure 模块
- javascript - fetch api中javascript中的响应重排
- reactjs - 上传到 aws 时出现跨源问题
- javascript - 无法在画布上绘制 SVG
- ios - 部分中的行数
- specman - Specman e:有没有办法将 simple_port 的 hdl_path 连接到否定的 verilog 端口?