存储功能未将数据保存到数据库

时间:2019-10-19 00:18:49

标签: php mysql sql database laravel

我有一个表单,用户可以在其中输入不同的数据,该表单包含两个部分。

enter image description here

第一部分数据将保存到名为pages的表中(工作正常),第二部分数据将保存到名为parameters的表中,表parameters包含一列,保存重复的数据名(不起作用),

这是表格的外观。

enter image description here

我已经为PIVOT tableparamaters表创建了prebids

prebid_parameter,

public function up()
{
    Schema::create('prebid_parameter', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->bigInteger('prebid_id')->unsigned();
        $table->foreign('prebid_id')->references('id')->on('prebids');
        $table->bigInteger('parameter_id')->unsigned();
        $table->foreign('parameter_id')->references('id')->on('parameters');
    });
}

像这样的page_prebid。

public function up()
{
    Schema::create('page_prebid', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->bigInteger('page_id')->unsigned();
        $table->foreign('page_id')->references('id')->on('pages');
        $table->bigInteger('prebid_id')->unsigned();
        $table->foreign('prebid_id')->references('id')->on('prebids');

    });
}

我已经建立了这样的关系。

页面模型。

class Page extends Model
{
    protected $fillable =[
        "title",
        "articles",
        "status"
    ];
    public function prebids(){
        return $this->belongsToMany('App\Prebid');
    }
}

预设模型。

class Prebid extends Model
{
    protected $fillable =["bidders_name"];

    public function parameters(){

        return $this->belongsToMany('App\Parameter');
    }
    public function pages(){

        return $this->belongsToMany('App\Page');
    }
}

参数模型如下所示。

class Parameter extends Model
{
    protected $fillable =[
        "params_name",
        "params_value",
        "bidders_name"
    ];
    public function prebids(){
        return $this->belongsToMany('App\Prebid');
    }
}

最后我有页面控制器存储功能来保存这样的数据。

 public function store(Request $request)
    {
        $page = Page::create([
            'title' => $request->get('title'),
            'articles' => $request->get('articles'),
            'status' => $request->get('status'),
        ]);

        $page->save();

        $page->tags()->sync($request->tags, false);
        $page->prebids()->sync($request->prebids, false);

        return redirect("/pages")->with("sucess", "data saved");
    }

当我添加dd($request)店内功能时,我得到以下信息

enter image description here

Note: parameter and prebid controllers are just empty

现在,当我单击“提交”按钮时,仅将第一部分数据保存到数据库中,其余部分则不保存到数据库中。

这是仓库:demo

我的代码在做什么错? laravel是新手。

1 个答案:

答案 0 :(得分:2)

事物的耦合正在跳出来。在您显示的模型中,我没有看到"DummyLine" | Out-File "$PSScriptRoot\Parsed_List.txt" -Encoding UTF8 $items = Get-ChildItem "C:\Program Files\Common Files\Native Instruments\Service Center\*.xml" foreach ($item in $items) { [xml]$XML_File = Get-Content $item $XML_File.ProductHints.Product | % { $Name = $_.Name $RegKey = $_.RegKey If (-Not $_.SNPID) {$SNPID = "ThirdParty"} Else {$SNPID = $_.SNPID} If (-Not $_.Company) {$Company = "Not specified"} Else {$Company = $_.Company} If ($SNPID -eq "334165") {$Name = "Maschine 2 Essential";$SNPID = "165"} "$SNPID`|$Name`|$Company`|$RegKey`|Location" | Out-File "$PSScriptRoot\Parsed_List.txt" -append -Encoding UTF8 } } 的实际关系。您在页面上有tags的恋人吗?

此外,这一行:

tags

正在从$page->prebids()->sync($request->prebids, false); 的请求中寻找输入,但在您的请求对象中没有看到。我看到prebids,它不会发送到sync()方法。 因此,不被同步。

尝试一下:

params_value