如何处理带有斜线的 Laravel Eloquent “WHERE”查询? (Laravel 5.3)
Posted
技术标签:
【中文标题】如何处理带有斜线的 Laravel Eloquent “WHERE”查询? (Laravel 5.3)【英文标题】:How to handle Laravel Eloquent "WHERE" Query with slash on the value? (Laravel 5.3) 【发布时间】:2017-07-11 23:47:46 【问题描述】:我的桌子是这样的:
在 mysql 上,我尝试这样:
SELECT * FROM players WHERE player_type = 'App\Models\Player'
数据不显示
所以,我像这样添加斜线:
SELECT * FROM players WHERE player_type = 'App\\Models\\Player'
数据显示
然后,在 laravel eloquent 中,我尝试这样:
$select = array(
'player_type'
);
$query = self::where('player_type', '=', 'App\\\Models\\\Player')
->paginate(10, $select, 'page', null, null);
数据不显示
我该如何解决?
【问题讨论】:
我可以安全地假设您使用的是morph
关系方法吗?
@Omisakin Oluwatobi,是的,我用它
那么您不必担心使用 with 再次询问玩家类型,例如,如果关系是玩家和用户,那么您可以简单地通过 User::with('players')->get()
之类的东西获取
【参考方案1】:
这里只是一种不同的方法,而不是解决方案。
您的所有模型都具有相同的命名空间App\Models\...
。如果是这样,那么只需将实际模型保存在您的数据库中,而不使用其命名空间。
id player_type
1 Player
2 Player
稍后在您的控制器中,您获取 palyer 类型并在尝试实例化模型时手动添加命名空间。
【讨论】:
如果不是解决方案,这不应该只是评论吗?以上是关于如何处理带有斜线的 Laravel Eloquent “WHERE”查询? (Laravel 5.3)的主要内容,如果未能解决你的问题,请参考以下文章