如何使用laravel保存2个表中的表单域

时间:2016-11-07 09:33:13

标签: database forms laravel laravel-5.2

我是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”类。

请任何人建议

1 个答案:

答案 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');
    }    
}