日志含义Laravel: SQLSTATE[42S22]: Column not found: 1054 Unknown


Laravel : SQLSTATE[42S22]: Column not found: 1054 Unknown column

我有三个表(services, services_products, services_product_translation)

当尝试插入新产品时,我得到这个错误

SQLSTATE[42S22]: Column not found: 1054 Unknown Column 'services_products. log 'services_product_id' in 'where子句' (SQL: select * from services_products where services_productsservices_product_id = 3)

是我的迁移服务迁移

Schema::create('services', function(Blueprint $table)
            {
                $table->increments('id');
                $table->binary('image');
                $table->timestamps();
            });

services_products迁移

Schema::create('services_products', function(Blueprint $table)
        {
            $table->increments('id');
            $table->integer('service_id')->unsigned();
            $table->binary('image');
            $table->binary('pdf');
            $table->foreign('service_id')->references('id')->on('services')->onDelete('cascade');
            $table->timestamps();
        });

这是翻译表

Schema::create('services_product_translations', function(Blueprint $table)
        {
            $table->increments('id');
            $table->integer('product_id')->unsigned();
            $table->string('title', 150);
            $table->longText('details');
            $table->string('locale')->index();
            $table->unique(['product_id', 'locale']);
            $table->foreign('product_id')->references('id')->on('services_products')->onDelete('cascade');
        });

这是我的模型

服务
class Service extends 'Eloquent
{
    use 'Dimsav'Translatable'Translatable;
    public $translatedAttributes = ['title', 'brief'];
    public $translationModel = 'ServicesTranslation';
    public function servicesPro()
    {
        return $this->hasMany('ServicesProduct', 'service_id');
    }
}

ServicesProduct

class ServicesProduct extends 'Eloquent
{
    use 'Dimsav'Translatable'Translatable;
    public $translatedAttributes = ['title', 'details'];
    public $translationModel = 'ServicesProductTranslation';

    public function services()
    {
        return $this->belongsTo('Service', 'service_id');
    }
    public function proImage()
    {
        return $this->hasMany('ServicesProductImage', 'image_id');
    }
    public function proVideo()
    {
        return $this->hasMany('ServicesProductVideo', 'video_id');
    }

这是我用来存储

的控制器
public function store()
    {
        $sev_id = Input::get('category');
        $file = Input::file('image');
        $pdf = Input::file('pdf');
        $destination_path = 'images/servicesProductsImages/';
        $filename = str_random(6) . '_' . $file->getClientOriginalName();
        $file->move($destination_path, $filename);
        $destination_path_pdf = 'images/servicesProductsPdf/';
        $filenamePdf = str_random(6) . '_' . $pdf->getClientOriginalName();
        $pdf->move($destination_path_pdf, $filenamePdf);

        $newSerPro = new ServicesProduct();
        $newSerPro->service_id = $sev_id;
        $newSerPro->image = $filename;
        $newSerPro->pdf = $filenamePdf;
        $newSerPro->save();
        $localization = Input::get('localization');
        $locales = array_keys($localization);
        foreach ($locales as $locale) {
            if (!in_array($locale, array('en', 'ar'))) {
                Session::flash('message', 'Lang Error');
                return Redirect::to('admin/create-service-sub-category');
            }
        }

这个错误是不言自明的,在services_products表中没有名称为services_product_id的列。这就是为什么它会显示错误。

我想condition中的列名应该是services_products.id因为通常我们在主列上连接表它的主列是id

发表评论作为回答:

应该只有"services_products.id"吗?我没有看到田野里的你