【问题标题】:Eloquent ORM filter the content after slash characterEloquent ORM 过滤斜线字符后的内容
【发布时间】:2019-05-13 04:47:49
【问题描述】:

我正在尝试以app/img.png 之类的形式获取数据。当我使用 Eloquent ORM 时,结果将得到app(斜杠后的内容将被过滤)。但是,我尝试使用查询生成器,它可以工作!结果将显示app/img.png。我用谷歌搜索了它,但没有找到。如果我想使用 Eloquent ORM,应该如何解决这个问题?

-- 编辑--

口才

$images = Image::where('name', 'LIKE', '%' . $request->get('q') . '%')
                 ->select('name', 'URL')
                 ->get();

四分卫

$images = \DB::table('images')
                 ->where('name', 'LIKE', '%' . $request->get('q') . '%')
                 ->select('name', 'URL')
                 ->get();

【问题讨论】:

  • 发布您的查询生成器代码
  • 你能发布你目前正在使用的代码吗?
  • 谢谢两位,我已经更新了代码
  • 在用toSql() 替换->get() 后你能dd($images) 吗?
  • 请将images表中的数据和dd($request->get('q'))的结果贴出来。

标签: laravel eloquent laravel-query-builder


【解决方案1】:

你应该这样做:

$images = Image::select('name', 'URL')
          ->where('name', 'LIKE', '%' . $request->get('q') . '%')
          ->get();

【讨论】:

  • 在 Laravel 5.8 上测试,在 select 之前或之后使用 select 子句不会改变任何东西。在我的测试中,它适用于两种情况
【解决方案2】:

感谢您的所有回答。几周后,我发现我在模型中设置了$primaryKey = 'URL',但我没有设置$keyType = 'string'。设置$keyType = 'string'后,一切正常!

【讨论】:

    猜你喜欢
    • 2015-04-04
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多