[英]create hasMany or one to many relationship from a pivot table - Laravel
[英]Create one to many table relationship with text input Laravel
我有两张表具有一对多的关系 - gratitude_journal_entries
self_gratitudes
和self_gratitudes
gratitude_journal_entries
。 多个自我感谢(由用户作为文本条目提交)可以申请 1 gratitude_journal_entry
条目。 数据通过表单传递到这两个表。
我试图将自我感谢文本条目存储在一个数组中,然后将它们与来自gratitude_journal_entries
self_gratitude
表的外键一起传递给self_gratitude
表。
我遇到的问题是我不确定如何从数组中获取输入并将其存储在self_gratitude
列中。
以下是gratitude_journal_entries
表的列
以下是self_gratitudes
表的列
这是我的控制器中的模型和存储方法
class SelfGratitudes extends Model
{
protected $table = 'self_gratitudes';
public $primarykey = 'id';
public function gratitudeJournalEntries() {
return $this->belongsTo(GratitudeJournalEntry::class);
}
}
class GratitudeJournalEntry extends Model
{
protected $table = 'gratitude_journal_entries';
public $primarykey = 'id';
public $timestamps = true;
public function user() {
return $this->belongsTo('App\User');
}
public function selfGratitudes()
{
return $this->hasMany(SelfGratitudes::class);
}
public function store(Request $request)
{
$this->validate($request, [
]);
$gj_entry = new GratitudeJournalEntry;
$gj_entry->user_id = auth()->user()->id;
$gj_entry['entry_date'] = date('Y-m-d H:i');
$self_gratitudes = $request->has('self_gratitudes') ? $request->get('self_gratitudes') : [];
$tj_entry->save();
$gj_entry->selfGratitudes()->sync($self_gratitudes);
return redirect('/dashboard')->with('success', 'You submitted a new journal entry');
}
如果您想将数组保留在数据库中,您可以在列上使用强制转换: laravel 文档
class SelfGratitudes extends Model
{
protected $casts = [
'self_graitude' => 'array',
];
protected $table = 'self_gratitudes';
public $primarykey = 'id';
public function gratitudeJournalEntries() {
return $this->belongsTo(GratitudeJournalEntry::class);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.