php - 如何在laravel中的2个表之间建立关系
问题描述
我有3张桌子作为图片,
site_notifications
site_users
site__users__notifactions
我想建立关系,所以我显示某个用户的通知详细信息
我试过了
public function notification()
{
return $this->hasManyThrough('App\SiteNotification', 'App\Site_Users_Notifaction', 'id', 'user_id');
}
但它给了我空
解决方案
这不是那样的。您应该使用多对多关系
您的表名应为:
- 用户
- 通知
- 通知用户
您的型号名称应为:
- 用户
- 通知
然后在User
课堂上:
class User extends Model
{
public function notifactions()
{
return $this->belongsToMany(Notifaction::class);
}
}
然后在Notifaction
课堂上:
class Notifaction extends Model
{
public function users()
{
return $this->belongsToMany(User::class);
}
}
然后你可以这样查询:
$user = App\User::find(1);
foreach ($user->notifactions as $notifaction) {
//
}
推荐阅读
- elasticsearch - Elasticsearch - 如何在顶部列出完全匹配
- java - Java 控制台中的运行时按键检测
- php - 无法运行用于创建新表的脚本
- apache-spark - org/apache/spark/Hbase-Spark 上的日志记录问题
- blockchain - 如何在我的私有网络中设置 Zcash?
- java - Appium Java sendText(); 无法发送字母“a”和“b”
- php - 谷歌地图地理定位不征求许可
- powershell - Windows10 Powershell - 闹钟、世界时钟、计时器、秒表?
- excel-2010 - 获取 Excel 中的当前列号(非编程方式)
- python - 我怎样才能拉数字之间