0

モデルを翻訳可能にするためにhttps://github.com/Astrotomic/laravel-translatableを使用しています。

以下の方法を使用してモデルを更新しようとしているときに、関連する翻訳済みコンテンツとともにモードを更新します。

$product = $this->repository->update($input, $uuid);

   // output of dd($input);

  "uuid" => "44b26fb0-04b9-11eb-981a-6b01570d58ed"
  "_method" => "PUT"
  "en-us" => array:5 [▶]
  "ar-eg" => array:5 [▶]
  "account_uuid" => "a1c23ce0-04b7-11eb-b060-7faa78f23afd"
  "type" => "tour"
  "iso_4217" => "EGP"
  "status" => "pending"

このエラーが発生しました:

Column not found: 1054 Unknown column 'id' in 'where clause'

モデルの主キーが「id」ではなく「uuid」であることを考慮すると、以下のモデル設定に従って、外部キーは「product_id」ではなく「product_uuid」になります。

class Product extends Model implements Transformable, TranslatableContract
{
    public $incrementing = false;
    public $keyType = 'string';
    public $timestamps = true;
    protected $primaryKey = 'uuid';

    public $translatedAttributes = [
        'name',
        'quantity_label_snigular',
        'quantity_label_plural',
        'brief_description',
        'long_description',
        'terms',
        'meta_keywords',
    ];

    public $translationForeignKey = 'product_uuid';
    public $localeKey = 'uuid';    
    public $useTranslationFallback = true;    
}

このリンクhttps://docs.astrotomic.info/laravel-translatable/usage/forms# Saving- the- request の正確なドキュメントに従いましたが、そのエラーを追跡することはできません。

4

1 に答える 1