php - 在 Laravel 中使用 eloquent 创建查询

标签 php mysql laravel laravel-4 eloquent

好的,所以我需要在下面用 eloquent 或 Laravel 创建一个查询。我只是不确定如何创建这样的东西:

select * from 
(select * from Bulk 
  where Login = 'moga' and ApptDate='2015-02-25' 
  order by FormatTime asc) as A
group by Name

这个查询将作为数据库中的原始查询运行得很好,我只是不确定如何使用查询助手或 Eloquent 来完成这个查询。

最佳答案

您可以使用 Eloquent 或查询生成器。以下是查询生成器的示例:

DB::table(DB::raw('(select * from Bulk where Login = "moga" and ApptDate="2015-02-25" order by FormatTime asc) as A'))
    ->groupBy('Name')
    ->get();

使用 Eloquent,您可以使用 ModelName::from() 而不是 DB::table()。但请记住,DB::raw 不会转义插入查询字符串中的变量值,您也可以使用构建器构建嵌套查询,以确保您不易受到 SQL 注入(inject)的攻击:

$from = DB::table('Bulk')
    ->where('Login', $login)
    ->where('ApptDate', $date)
    ->orderBy('FormatTime')
    ->toSql();

DB::table(DB::raw('(' . $from  . ') A'))->groupBy('Name')->toSql();

关于php - 在 Laravel 中使用 eloquent 创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731117/

相关文章:

php - 在 PHP 中这样命名参数是个坏主意吗?

php - mysql中的ID重置

php - 使用 Ajax 参数更新 Codeigniter SQL 表不起作用

php - Laravel 5.5 - 同时验证多个表单请求

php - Json_encode 拒绝字符串中的字符

java - 在 PHP 脚本中包含 Java 类

mysql - 使用 UPDATE 的 Delphi SQL 集成

laravel - Laravel 5.3 中的多重身份验证

php - Laravel 5.2 外键失败

php - 查找mysql记录的有效方法