作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我来自 Rails 背景,我们可以使用正确的引用轻松创建 has_many_through。
我在这个项目中的模型: Deal <=> DealsFaqs <=> Faqs
在交易模型中,我有:
public function faqs(){
return $this->hasManyThrough('App\Faq', 'App\DealsFaqs');
}
public function deals()
{
return $this->belongsTo('App\Deal');
}
public function faqs()
{
return $this->belongsTo('App\Faq');
}
public function deals(){
return $this->hasManyThrough('App\Deal', 'App\DealsFaqs');
}
///////////////////
// ASSOCIATE FAQ's TO DEALS
///////////////////
if($request->faqs){
foreach($request->faqs as $key => $faq){
// Create new DealsFaqs
$entry = new \App\DealsFaqs;
// Populate it
$entry->faq_id = $faq['id'];
$entry->deal_id = $deal->id;
$entry->save(); // Save the DealsFaqs
}
}
<?php $a=0; foreach($faqs as $faq): ?>
<div class="col-sm-12">
<label>
<input type="radio" name="faqs[{{ $a }}][id]" value="{{ $faq->id }}">
{{ $faq->name }}
</label>
</div>
<?php $a++; endforeach; ?>
最佳答案
你说你正在处理一个 有很多通过关系,据我所知,它需要 3 个独立的模型才能工作。我觉得你在使用 多对多关系,因为看起来您正在使用两个模型。
正如您所说,您来自 Rails 背景,我觉得我要么犯了一个巨大的错误,要么不了解您的数据库关系,要么您有很多对很多,并且有很多混淆。
仅供引用:有很多通过,来自 laravel 文档:
The "has-many-through" relationship provides a convenient short-cut for accessing distant relations via an intermediate relation. For example, a Country model might have many Post models through an intermediate User model.
deals
,
faqs
和中间表
deal_faq
,第三个表名遵循 Laravel 中间表的约定,其中连接表的单数名称按字母顺序使用,中间有下划线。表
deal_faq
需要一个
deal_id
和
faq_id
.
Deal
和
Faq
,具有以下关系方法:
Deal
模型:
public function faqs(){
return $this->belongsToMany('App\Deal');
}
Faq
模型:
public function deals(){
return $this->belongsToMany('App\Faq');
}
// get a deal
$deal = App\Deal::first(); // grab the first one in the db
// get faqs linked to deal
$deal->faqs;
// connect an faq and deal together
$faq = App\Faq::first();
$deal->attach($faq->id); // where id is the primary key attribute
Faq
在一个表单中,我如何获取
Faq
的关系。在这种情况下,如果您使用的是
Faq
,您可以执行类似的操作。的
id
在您的表单请求中。
$faqId = $request->faq_id;
$faq = App\Faq::find($faqId);
$deals = $faq->deals;
关于laravel - 如何在 Laravel5 View 中为具有枢轴的 hasManyThrough 关系创建表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35856332/
我是一名优秀的程序员,十分优秀!