Search code examples
laravellocalizationlaravel-localization

Translatable not insert when saving


I have a weir issue with translatable. I have two main model used translatable, the first one work perfectly. The second dont work anymore. I spent 2 days for rewrite, compare between 2 models but nothing happends.

Here is my code

class Page extends Model {
    use Translatable;
    use SoftDeletes;
    use \App\Classes\Scope;

    public $translatedAttributes = ['name', 'content', 'slug', 'keyword', 'description'];

    protected $fillable = ['compiler', 'status', 'permission'];

    protected $table = "pages";

    public static $rules = [
        '*.name' => 'required',
        '*.content' => 'required',
    ];
}

class PageTranslation extends Model {

    protected $fillable = ['name', 'slug', 'content', 'keyword', 'description'];

    public $timestamps = false;
}

In controller

public function store(Request $request) {
    $this->validate($request, Page::$rules);

    $inputs = $request->all();
    $inputs['status'] = $request->has('status');

    $newPage = Page::create($inputs);
    return view('backend.pages.create')->withPage($newPage);
    return redirect()->back()->withFlashSuccess('Saved successfully');
}

Only page was inserted, page_translations dont insert anymore. No error shown.

Please tell me what i was wrong! Anyhelp is appreciated.


Solution

  • You should put all fillables you need into "pages" table : Try this :

    class Page extends Model {
    use Translatable;
    use SoftDeletes;
    use \App\Classes\Scope;
    
    public $translatedAttributes = ['name', 'content', 'slug', 'keyword', 'description'];
    
    protected $fillable = ['name', 'content', 'slug', 'keyword', 'description', 'compiler', 'status', 'permission'];
    
    protected $table = "pages";
    
    public static $rules = [
        '*.name' => 'required',
        '*.content' => 'required',
    ];
    }
    

    Please let me know if it works :)