Php 如何处理Laravel的“雄辩”;其中;在值上使用斜杠进行查询?(拉威尔5.3)

Php 如何处理Laravel的“雄辩”;其中;在值上使用斜杠进行查询?(拉威尔5.3),php,mysql,laravel,laravel-5.3,laravel-eloquent,Php,Mysql,Laravel,Laravel 5.3,Laravel Eloquent,我的桌子是这样的: SELECT * FROM players WHERE player_type = 'App\Models\Player' SELECT * FROM players WHERE player_type = 'App\\Models\\Player' $select = array( 'player_type' ); $query = self::where('player_type', '=', 'App\\\Models\\\Player')

我的桌子是这样的:

SELECT * FROM players WHERE player_type = 'App\Models\Player'
SELECT * FROM players WHERE player_type = 'App\\Models\\Player'
$select = array(
    'player_type'
);
$query = self::where('player_type', '=', 'App\\\Models\\\Player')
             ->paginate(10, $select, 'page', null, null);

在mysql上,我尝试如下:

SELECT * FROM players WHERE player_type = 'App\Models\Player'
SELECT * FROM players WHERE player_type = 'App\\Models\\Player'
$select = array(
    'player_type'
);
$query = self::where('player_type', '=', 'App\\\Models\\\Player')
             ->paginate(10, $select, 'page', null, null);
数据不显示

因此,我添加了如下斜杠:

SELECT * FROM players WHERE player_type = 'App\Models\Player'
SELECT * FROM players WHERE player_type = 'App\\Models\\Player'
$select = array(
    'player_type'
);
$query = self::where('player_type', '=', 'App\\\Models\\\Player')
             ->paginate(10, $select, 'page', null, null);
数据显示

然后,在《拉雷维尔雄辩》中,我尝试如下:

SELECT * FROM players WHERE player_type = 'App\Models\Player'
SELECT * FROM players WHERE player_type = 'App\\Models\\Player'
$select = array(
    'player_type'
);
$query = self::where('player_type', '=', 'App\\\Models\\\Player')
             ->paginate(10, $select, 'page', null, null);
数据不显示


我该怎么解决呢?

这里只是一种不同的方法,而不是解决方案

您的所有模型都具有相同的命名空间
App\models\…
。如果是这样,那么只需将实际模型保存在数据库中,而不使用其名称空间

id        player_type
 1        Player
 2        Player

之后在控制器中,您将获得palyer类型,并在尝试实例化模型时手动添加名称空间。

我可以安全地假设您使用的是
morph
关系方法吗?@Omisakin Oluwatobi,是的,我使用了它。您不必担心再次使用询问玩家类型的方法,例如,如果关系是players和users,那么您可以简单地通过类似
User::with('players')->get()的方式获取。如果这不是一个解决方案,这不应该只是一个注释吗?