我有一个简单的表单来添加页面信息,表单看起来像这样
如您在前提条件输入上方看到的那样,要添加前提条件,我们需要单击加号按钮,然后在弹出窗口中显示弹出窗口,我有一个包含以下输入的表单
1.bidder_name
2.params_name
3.params_value
因此,现在当用户从弹出菜单中保存前提条件输入时,数据将保存到名为parameters
的表中,然后用户单击add page
按钮并将数据保存到名为{{ 1}},
我想用添加的参数(禁止输入)链接添加的页面。
这是我到目前为止尝试过的
页面模型
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');
}
在phpmyadmin中看起来是这样
这里是存储功能,用于将前提条件输入(参数)保存在参数控制器中
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');
});
}
现在,当用户将数据保存到数据库时,我可以看到保存到页面表和参数表的数据,但数据透视表为空。
我对laravel很陌生,
现在,当我将数据保存到数据库时,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.'
]);
}
}
(数据透视表)为空;
我的代码在做什么错?
答案 0 :(得分:0)
您需要创建页面项目的第一件事:
$page=Page::create(your data);
之后
$page->parameter()->insert($insert_data);
答案 1 :(得分:0)
// Tag model many to many relation ship
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tag extends Model
{
public function posts()
{
return $this->belongsToMany('App\Post')->withTimestamps();
}
}
// // Post model many to many relation ship
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public function tags()
{
return $this->belongsToMany('App\Tag')->withTimestamps();
}
}
// Show tag with post
<td>{{$tag->posts->count() }}</td>
// show post with tag
<td>{{$post->tags->name}}</td>