我想使用雄辩的laravel连接2个表t_admin和t_article。这是表t_admin:
id_adm| name | email
-------------------------
4 | Arya | arya@mail.com
7 | Andrea | andrea@mail.com
12 | Adibah | adibah@mail.com
表t_article:
id_article | id_admin | title
--------------------------------
1 | 4 | AAA
2 | 12 | BBB
3 | 7 | CCC
基于该表,t_admin.id_adm = t_article.id_admin。
这是我的模特 Admin.php
class Admin extends Model
{
protected $fillable = [
'id_adm','name','email',
];
protected $table = 't_admin';
}
Article.php
class Article extends Model
{
protected $fillable = [
'id_article','id_admin','title',
];
protected $table = 't_article';
}
答案 0 :(得分:1)
在您的管理模型中创建关系: 注意:我假设管理员可以撰写很多文章。
public function articles(){
return $this->hasMany('App\Article', 'id_admin');
}
然后,每当要获取属于管理员的所有文章时,请执行以下操作:
$adminArticles = Admin::find($adminId)->articles
在管理员只能有一篇文章的情况下,请执行以下操作:
public function article(){
return $this->hasOne('App\Article', 'id_admin');
}
然后,每当您要获取属于管理员的文章时,请执行以下操作:
$adminArticle = Admin::find($adminId)->article
阅读here了解更多信息。
您还可以使用Laravel的查询生成器自己编写联接查询。 对于您的情况,您可以这样做:
$adminArticles = DB::table('t_admin')
->join('t_article', 't_admin.id_adm', '=', 't_article.id_admin')
->select('t_admin.*', 't_article.title')
->get();
答案 1 :(得分:1)
将关系添加到假设一对多的模型中
class Admin extends Model
{
protected $fillable = [
'id_adm','name','email',
];
protected $table = 't_admin';
/**
* Get the articles for admin.
*/
public function articles()
{
return $this->hasMany('App\Article');
}
}
class Article extends Model
{
protected $fillable = [
'id_article','id_admin','title',
];
protected $table = 't_article';
/**
* Get the user for the article post.
*/
public function user()
{
return $this->belongsTo('App\Admin');
}
}
您可以通过以下方式检索它们
$articles = App\Admin::find(1)->articles;
foreach ($articles as $article) {
//
}