我是laravel的新手。我需要将表单字段保存在一个表中,而将其他表保存在laravel中。这两个表具有外键引用。在一个表中数据被保存但另一个表无法保存数据库。任何人都建议这个吗?
提前谢谢
表问题: ID, exam_id, 问题
表答案: ID, question_id, 选项, 答案模型1:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Question extends Model
{
protected $table='question';
public function answer()
{
return $this->hasMany('Answer');
}
}
模型2:
<?php
namespace App;
namespace App\Http\Controllers;
use Illuminate\Database\Eloquent\Model;
class Answer extends Model
{
protected $table='answer';
public function question()
{
return $this->BelongsTo('Question');
}
}
添加问题页
public function add_question()
{
$exam =DB::table('exam')->select(array('id', 'exam_name'))->get();
return view('add_question')->with('exam',$exam);
}
//it shows the form page
验证并将问题和答案详细信息保存到数据库
public function validate_question()
{
$rules = array(
'question'=>'required|max:300'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails())
{
return edirect::back()->withErrors($validator,'login')->withInput(Input::except('question'));
}
else
{
$question =new Question;
$question->exam_id = Input::get('exam_id');
$question->question = Input::get('question');
$question->save();
if($question->save()){
$answer =new Answer;
$answer ->options = Input::get('options');
$answer ->answers = Input::get('answers');
$question->answer()->save($answer);
}
}
Session::flash('message', 'Successfully created question record!');
return Redirect::to('question');
}
我收到了错误:
HomeController.php第261行中的FatalErrorException:找不到“App \ Answer”类。
请任何人建议
答案 0 :(得分:0)
在你的Answer
模型中,你已经将它命名为两次(或许意外):
namespace App;
namespace App\Http\Controllers;
显然,您的模型位于App
目录中,而不是Controllers
,因此只需删除第二行。
此外,在引用关系时,您需要指定正确的路径App\Question
而不是Question
。在那个注释中,您的Question
模型也是如此。
您的Answer
模型应如下所示:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Answer extends Model
{
protected $table='answer';
public function question()
{
return $this->BelongsTo('App\Question');
}
}