将值添加到数据透视 table laravel
Add values to pivot table laravel
当我想保存对工单的反应时,我有三个 table(在 laravel 中):
-Tickets
-Reaction
-Reaction_Tickets (pivot table)
当我想保存反应时,我会这样做:
public function addReaction(Request $request, $slug)
{
$ticket = Ticket::whereSlug($slug)->firstOrFail();
$reaction = new reactions(array(
'user_id' => Auth::user()->id,
'content' => $request->get('content')
));
return redirect('/ticket/'.$slug)->with('Reactie is toegevoegd.');
}
但现在当然没有添加到主元table。我无法添加它,因为我没有它的模型。这样做的正确方法是什么?
编辑:
-Tickets
public function reactions()
{
return $this->belongsToMany('App\reactions');
}
-Reactions
public function tickets()
{
return $this->hasOne('App\tickets');
}
从 Laravel 文档中,您需要保存 Reaction
并将其附加到 Ticket
:
$reaction = new reactions(array(
'user_id' => Auth::user()->id,
'content' => $request->get('content')
));
$reaction->save(); // Now has an ID
$tickets->reactions()->attach($reaction->id);
在您的 Ticket
模型中,您需要定义关系:
class Ticket extends Model {
protected $table = "tickets";
public function reactions(){
return $this->belongsToMany("App\Reaction");
}
}
你应该在 Reaction
:
上定义逆函数
class Reaction extends Model {
protected $table = "reactions";
public function tickets(){
return $this->belongsToMany("App\Ticket");
}
}
如果您的模型是这样设置的,那么通过您的枢轴 table.[=19 将新的 Reaction
附加到现有的 Ticket
应该没有任何问题=]
当我想保存对工单的反应时,我有三个 table(在 laravel 中):
-Tickets
-Reaction
-Reaction_Tickets (pivot table)
当我想保存反应时,我会这样做:
public function addReaction(Request $request, $slug)
{
$ticket = Ticket::whereSlug($slug)->firstOrFail();
$reaction = new reactions(array(
'user_id' => Auth::user()->id,
'content' => $request->get('content')
));
return redirect('/ticket/'.$slug)->with('Reactie is toegevoegd.');
}
但现在当然没有添加到主元table。我无法添加它,因为我没有它的模型。这样做的正确方法是什么?
编辑:
-Tickets
public function reactions()
{
return $this->belongsToMany('App\reactions');
}
-Reactions
public function tickets()
{
return $this->hasOne('App\tickets');
}
从 Laravel 文档中,您需要保存 Reaction
并将其附加到 Ticket
:
$reaction = new reactions(array(
'user_id' => Auth::user()->id,
'content' => $request->get('content')
));
$reaction->save(); // Now has an ID
$tickets->reactions()->attach($reaction->id);
在您的 Ticket
模型中,您需要定义关系:
class Ticket extends Model {
protected $table = "tickets";
public function reactions(){
return $this->belongsToMany("App\Reaction");
}
}
你应该在 Reaction
:
class Reaction extends Model {
protected $table = "reactions";
public function tickets(){
return $this->belongsToMany("App\Ticket");
}
}
如果您的模型是这样设置的,那么通过您的枢轴 table.[=19 将新的 Reaction
附加到现有的 Ticket
应该没有任何问题=]