Php 定义自定义中间表模型的Laravel

Php 定义自定义中间表模型的Laravel,php,laravel,laravel-5,eloquent,laravel-eloquent,Php,Laravel,Laravel 5,Eloquent,Laravel Eloquent,我正试图通过使用Eloquent获得用户权限 我有三张桌子 第一个是用户表 第二个是权限表 第三个是用户权限 结构非常简单 users -id -name permissions -id -name user_permissions -user_id -permission_id -read -write -update -delete 这是显示用户权限的代码: $user = App\User::find(1)->first(); foreach($user->permiss

我正试图通过使用Eloquent获得用户权限

我有三张桌子

第一个是用户

第二个是权限

第三个是用户权限

结构非常简单

users
-id
-name

permissions
-id
-name

user_permissions
-user_id
-permission_id
-read
-write
-update
-delete
这是显示用户权限的代码:

$user = App\User::find(1)->first();
foreach($user->permissions as $permission){
    echo "Read".$permission->pivot->read."<br>";
    echo "Write".$permission->pivot->write."<br>";
    echo "Update".$permission->pivot->update."<br>";
    echo "Delete".$permission->pivot->delete."<br>";
}
但我想用另一种方式写,因为我不想选择我需要的字段,我只想选择所有字段,所以当我这样写时,我会得到一个错误:

public function permissions()
{
    return $this->belongsToMany('App\Permission','user_permissions')->using('App\UserPermission');
}
这是我的错误:

Builder.php第2440行中的BadMethodCallException: 调用未定义的方法Illumb\Database\Query\Builder::using()

我不想选择我需要的字段,我只想选择所有字段

如果您的意思是不想指定透视中存在哪些字段,而是让它自动发生,那么您不能。发件人:

默认情况下,轴对象上将仅显示模型关键点。如果透视表包含额外属性,则必须在定义关系时指定这些属性:

.

而不仅仅是:

return$this->belongstomy('App\Permission','user\u permissions')->withPivot('read','create','update','delete');
您可以在透视模型中定义常量/变量:

class用户权限扩展了Pivot
{
常量透视属性=[
“读”,
“创建”,
“更新”,
“删除”
];
// . . .
}
然后:

公共功能权限()
{
返回$this->belongToMany(权限::类,“用户权限”)
->withPivot(用户权限::PIVOT\u属性)
->使用(UserPermission::class);
}

现在,您可以在您的
UserPermission
类中更新
PIVOT\u属性
常量。

这就是我在这里尝试的操作:返回$this->belongTomany('App\Permission','user\u permissions')->使用('App\UserPermission');但它不起作用我不熟悉使用方法的
,在文档中找不到关于它的任何信息。。。记录在哪里?谢谢,我不知道,在5.4中似乎是新的?那么您的
UserPermission
模型是什么样子的呢?
using(…)
仅在laravel 5.4中可用,laravel 5.3将给您
调用未定义的方法illumb\Database\Query\Builder::using()
您有什么laravel版本?
public function permissions()
{
    return $this->belongsToMany('App\Permission','user_permissions')->using('App\UserPermission');
}