未找到基本表或视图:1146表'xyz.testimonials'不存在(SQL:从“ testimonials”中选择*)

时间:2019-09-06 05:42:56

标签: php mysql laravel

[已解决]我不是Laravel的专家。刚开始进行Web开发。我被要求对从c Panel下载的现有项目进行更改。在服务器上,项目运行正常。但是下载后,我得到了以下错误,并且不太确定发生了什么。

  

SQLSTATE [42S02]:找不到基表或视图:1146表'xyz.testimonials'不存在(SQL:从testimonials中选择*)

下载项目后,我可以执行以下操作

  

php artisan cache:clear

     

作曲家更新

     

php artisan迁移

     

php artisan db:seed

以下TestimonialController.php文件

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Testimonial;

class TestimonialController extends Controller
{
    public function index()
    {
        $testimonials = Testimonial::all();
        return view('dashboard.testimonials.index')->withTestimonials($testimonials);
    }

    public function create()
    {
        return view('dashboard.testimonials.create');
    }

    public function store(Request $request)
    {
        $request->validate(['testimonial_text'=>'required']);
        $testimonial = Testimonial::create($request->all());
        if($testimonial)
        {
            $this->success('Testimonial added successfully');
        }
        else
        {
            $this->error();
        }
        return redirect()->back();
    }

    public function edit(Testimonial $testimonial)
    {
        return view('dashboard.testimonials.edit')->withTestimonial($testimonial);
    }

    public function update(Testimonial $testimonial,Request $request)
    {
        if($testimonial->update($request->all()))
        {
            $this->success('Testimonial Updated Successfully');
        }
        else
        {
            $this->error();
        }
        return redirect()->route('dashboard.testimonials.index');
    }

    public function destroy(Testimonial $testimonial)
    {
        if($testimonial->delete())
        {
            $this->success('Testimonial Deleted Successfully');
        }
        else
        {
            $this->error();
        }
        return redirect()->back();
    }
}

Testimonial.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Testimonial extends Model
{
    public $guarded = [];

    public function allTestimonials()
    {
        return self::all();
    }
}

2 个答案:

答案 0 :(得分:1)

确保 xyz 数据库中的推荐书存在。如果您使用其他名称创建了表格,则必须在模型中对其进行定义。

让我们说,您已经使用了一个表名作为证明。那么在您的模型中,保护字段将为

class Testimonial extends Model
{
    protected $table = 'testimonial';
}

答案 1 :(得分:1)

Laravel中有两种表定义方式。

  • 模型类名称(推荐)=单数和表格 name(testimonials)=复数,请检查testimonials是否 是否在您的数据库中可用。每当你不定义 $table进入模型,这意味着Laravel自动搜索表格。
  • 您必须手动将$table添加到模型文件中,如下所示。每当你不在的时候
    按照以下第一条规则以复数形式创建表名。

    受保护的$ table ='见证';