Laravel: отношение «один ко многим» не обновляется автоматически - PullRequest
0 голосов
/ 29 июня 2018

3 вида сообщений: Личные, Бизнес и Природа.

Ниже приведена модель сообщения

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\Relation;

Relation::morphMap([
          'Personal' => 'App\Personal',
          'Business' => 'App\Business',
          'Nature' => 'App\Nature',
        ]);

class Post extends Model
{
    public function postable()
    {
        return $this->morphTo();
    }        
}

Ниже представлена ​​личная модель

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;    

class Personal extends Model
{
    public function posts()
    {
        return $this->morphMany(Post::class,'postable');
    }
}

Аналогично модели Busines & Nature.

Когда я вручную вводю данные в phpMyAdmin, тинкер показывает результат по мере необходимости, но когда я создаю сообщение из внешнего интерфейса (через форму), таблица posts остается неизменной.

Я пробовал гуглить, но ничего не работает! (

Ниже находится PersonalController

public function create()
    {
        if(Auth::guest()){
            return redirect()->route('login');
        }
        $sectors = Sector::all();
        $cities = City::all();
        $ranges = Range::all();
        return view('front.personal-register',compact('sectors','cities','ranges'));
    }

public function store(Request $request)
    {
        $this->validate($request,[
            "sectors" => "required",
            "cities" => "required",
            "ranges" => "required",
            "g-recaptcha-response" => "required|captcha"
        ]);

    $franchisee = new Personal;
    $franchisee->user_id = Auth::user()->id;
    $franchisee->save();

    $franchisee->sectors()->sync($request->sectors);
    $franchisee->cities()->sync($request->cities);
    $franchisee->ranges()->sync($request->ranges);

    return redirect(route('personal.index'))->with('message','Thank You! Your post has been added');
}
...