gpt4 book ai didi

php - Laravel 数据透视表在数据库中为空

转载 作者:行者123 更新时间:2023-11-29 15:31:08 24 4
gpt4 key购买 nike

我有一个用于添加页面信息的简单表单,该表单如下所示

enter image description here

正如您在预出价输入上方所看到的,要添加预出价,我们需要单击加号按钮并弹出窗口出现在弹出窗口中,我有一个包含以下输入的表单

1.bidder_name                   
2.params_name
3.params_value

现在,当用户保存弹出窗口中的预出价输入时,数据将保存到名为 parameters 的表中,然后用户单击add page 按钮,数据将被保存到名为 parameters 的表中。保存到名为 pages ,

的表中

我想将添加的页面与添加的参数(预出价输入)链接起来。

这是我迄今为止尝试过的

页面模型

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

参数模型

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

这是数据透视表

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

这是 phpmyadmin 中的内容

enter image description here

这里是存储函数,用于在参数 Controller 内保存预投标输入(参数)

public function store(Request $request){
// dd($request);

if($request->ajax())
{
$rules = array(
'params_name.*' => 'required',
'params_value.*' => 'required',
'bidders_name.*' => 'required'
);
$error = Validator::make($request->all(), $rules);
if($error->fails())
{
return response()->json([
'error' => $error->errors()->all()
]);
}

$params_name = $request->params_name;
$params_value =$request->params_value;
$bidders_name =$request->bidders_name;

for($count = 0; $count < count($params_name); $count++)
{
$data = array(
'params_name' => $params_name[$count],
'params_value' => $params_value[$count],
'bidders_name' => $bidders_name[$count],

);

$insert_data[] = $data;
// dd($insert_data);

}

Parameter::insert($insert_data);
return response()->json([
'success' => 'Data Added successfully.'
]);
}
}

现在,当用户将数据保存到数据库时,我可以看到数据保存到页面表和参数表,但数据透视表为空。

我对 Laravel 很陌生,

现在,当我将数据保存到数据库时,page_parameter 表(数据透视表)为空;

我的代码做错了什么?

最佳答案

您需要创建页面项目的第一件事:

$page=Page::create(your data);

之后

$page->parameter()->insert($insert_data);

关于php - Laravel 数据透视表在数据库中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com