【问题标题】:How to handle Laravel Eloquent "WHERE" Query with slash on the value? (Laravel 5.3)如何处理带有斜线的 Laravel Eloquent “WHERE”查询? (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() 之类的东西获取

标签: php mysql laravel laravel-5.3 laravel-eloquent


【解决方案1】:

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

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

id        player_type
 1        Player
 2        Player

稍后在您的控制器中,您获取 palyer 类型并在尝试实例化模型时手动添加命名空间。

【讨论】:

  • 如果不是解决方案,这不应该只是评论吗?
猜你喜欢
  • 2020-08-15
  • 2016-06-13
  • 2018-02-02
  • 1970-01-01
  • 2015-05-16
  • 2019-12-20
  • 2021-02-11
  • 2020-09-15
  • 2020-01-01
相关资源
最近更新 更多