我有一个表单,用户可以在其中输入不同的数据,该表单包含两个部分。
第一部分数据将保存到名为pages
的表中(工作正常),第二部分数据将保存到名为parameters
的表中,表parameters
包含一列,保存重复的数据名(不起作用),
这是表格的外观。
我已经为PIVOT table
和paramaters
表创建了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)
店内功能时,我得到以下信息
Note: parameter and prebid controllers are just empty
现在,当我单击“提交”按钮时,仅将第一部分数据保存到数据库中,其余部分则不保存到数据库中。
这是仓库:demo
我的代码在做什么错? laravel是新手。
答案 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