我有三张桌子
id
title
body
categories_id
user_id
Run Code Online (Sandbox Code Playgroud)
id
category_name
Run Code Online (Sandbox Code Playgroud)
id
user_name
user_type
Run Code Online (Sandbox Code Playgroud)
我想用他们的类别名称而不是category_id和user_name而不是user_id来显示文章我尝试这些查询这是工作!
$articles =DB::table('articles')
->join('categories', 'articles.id', '=', 'categories.id')
->join('users', 'users.id', '=', 'articles.user_id')
->select('articles.id','articles.title','articles.body','users.username', 'category.name')
->get();
Run Code Online (Sandbox Code Playgroud)
但我想用Eloquent的方式做.拜托,我该怎么办?
我最近开始使用Laravel4.在多个关系的情况下,我在更新数据透视表数据时遇到一些问题.
情况是:我有两个表:Product,ProductType.它们之间的关系是多对多的.我的模特是
class Product extends Eloquent {
protected $table = 'products';
protected $primaryKey = 'prd_id';
public function tags() {
return $this->belongsToMany('Tag', 'prd_tags', 'prta_prd_id', 'prta_tag_id');
}
}
class Tag extends Eloquent {
protected $table = 'tags';
protected $primaryKey = 'tag_id';
public function products()
{
return $this->belongsToMany('Product', 'prd_tags', 'prta_prd_id', 'prta_tag_id');
}
}
Run Code Online (Sandbox Code Playgroud)
在将数据插入数据透视表prd_tags时,我做了:
$product->tags()->attach($tag->tagID);
Run Code Online (Sandbox Code Playgroud)
但是现在我想更新此数据透视表中的数据,将数据更新到数据透视表的最佳方法是什么.比方说,我想删除一些标签并为特定产品添加新标签.