Laravel:一对多多边形关系不会自动更新

时间:2018-06-29 17:15:15

标签: laravel laravel-5 orm relationship

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');
    }
}

类似商务和自然模型。

当我在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');
}

0 个答案:

没有答案