【问题标题】:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'docgenerator.curricula' doesn't existSQLSTATE [42S02]:未找到基表或视图:1146 表 'docgenerator.curricula' 不存在
【发布时间】:2018-06-30 06:02:10
【问题描述】:

我看到了与我遇到的问题类似的问题,但没有一个真正帮助我。

下面是代码:

控制器(创建和存储方法)

 namespace App\Http\Controllers;

use App\Curriculum;
use App\Company;
use App\User;
use App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;

class CurriculumsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $curriculums = Curriculum::all();

        return view('curriculums.index',['curriculums' =>$curriculums]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        //
        $companies = Company::where('comptype_id', '=', 1)->get();
        $users = DB::table('users');

        //dd($companies);
        return view('curriculums.create', ['companies'=>$companies,'users'=>$users]);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //

            $curriculum = $request->validate([
                'curriculum_code' => 'required|unique:curriculums|max:10|min:9',
                'curriculum_title' => 'required',
            ]);


            $curriculum = Curriculum::create([
                'curriculum_code' => $request->input('curriculum_code'),


            ]);


            if ($curriculum) {
                return redirect()->route('curriculums.show', ['curriculums' => $curriculum->id])
                    ->with('success', 'Curriculum header created Successfully');
            }


        return back()->withInput()->with('error' , 'Curriculum header could not be created');
    }

模型

class Curriculum extends Model
{
    //
    protected $fillable = ['curriculum_code',
        'curriculum_title',
        'company_id',
        'user_id',
    ];

    public function company()
    {
        return $this->belongsTo('App\Company');
    }

    public function user()
    {
        return $this->belongsTo('App\User');
    }
}

刀片

<form method="post" action="{{route('curriculums.store')}}">
                         {{csrf_field()}}

                         <div class="box-body">
                             <div class="row">
                                 <div class="col-12">
                                     <div class="form-group {{$errors->has('curriculum_code') ? 'has-error': ''}}">
                                         <label for="name" class="col-sm-2 col-form-label">Curriculum Code<span class="danger">*</span> </label>
                                         <div class="col-sm-10">
                                             <input class="form-control" name="curriculum_code" type="text" value="" id="example-text-input">
                                             @if($errors->has('curriculum_code'))
                                                 <span class="help-block">{{$errors->first('first')}}</span>
                                             @endif
                                         </div>
                                     </div>
                                     <div class="form-group {{$errors->has('curriculum_title') ? 'has-error': ''}}">
                                         <label for="name" class="col-sm-2 col-form-label">Curriculum Title<span class="danger">*</span> </label>
                                         <div class="col-sm-10">
                                             <input class="form-control" name="curriculum_title" type="text" value="" id="example-text-input">
                                             @if($errors->has('curriculum_title'))
                                                 <span class="help-block">{{$errors->first('first')}}</span>
                                             @endif
                                         </div>
                                     </div>
                                    <div class="form-group ">
                                        <label for="company" class="col-sm-2 col-form-label">Development Quality Partner<span class="danger">*</span> </label>
                                        <div class="col-sm-10">

                                                <select class="form-control select2" style="width: 100%;" name="company_id">
                                                   @foreach($companies as $company)
                                                      <option value="{{$company->id}}">{{$company->name}}</option>
                                                   @endforeach
                                                </select>

                                        </div>
                                    </div>
                                 </div>
                             </div>
                             <div class="text-xs-right">
                                 <button type="submit" class="btn btn-info" value="Submit">Occupational Information</button>
                             </div>

                         </div>
                     </form>

我了解控制器在尝试将数据插入数据库时​​出现问题。我为此苦苦挣扎的主要原因是:数据库不包含任何名为 curricula 的表,控制器也不包含单词 curricula。我是 laravel 的新手,所以任何帮助将不胜感激

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    Curriculum 的表应称为 curricula,因为它是 curriculum 的复数形式。

    如果您使用不同的名称,请在模型中执行此操作:

    protected $table = 'custom_table_name';
    

    在我的最佳实践存储库中了解有关 Laravel naming conventions 的更多信息。

    【讨论】:

      【解决方案2】:

      如果表名不是模型名的复数,你应该像这样在表变量中指定它。

      像这样将受保护的$table = 'curricula'; 添加到模型中

      class Curriculum extends Model
      {
      
          protected $table = 'curricula';
          //
          protected $fillable = ['curriculum_code',
              'curriculum_title',
              'company_id',
              'user_id',
          ];
      
          public function company()
          {
              return $this->belongsTo('App\Company');
          }
      
          public function user()
          {
              return $this->belongsTo('App\User');
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-22
        • 2018-04-19
        • 2015-10-05
        • 2021-05-13
        • 2021-10-17
        • 2020-04-28
        • 2015-09-22
        相关资源
        最近更新 更多