Laravel 运行原始SQL但返回模型实例数组

Laravel 运行原始SQL但返回模型实例数组,laravel,eloquent,Laravel,Eloquent,我想运行一个sql语句,返回值是一个模型数组,目前返回的是一个stdClass数组 我正在做这样的事情 DB::select('some sql statement') 返回的结果类似于 array(2) { [0]=> object(stdClass)#524 (7) ..... [1]=> object(stdClass)#525 (7) ..... 我宁愿 array(2) { [0]=> object(App\Feed)#524 (7) .....

我想运行一个sql语句,返回值是一个模型数组,目前返回的是一个stdClass数组

我正在做这样的事情

DB::select('some sql statement')
返回的结果类似于

array(2) {
  [0]=> object(stdClass)#524 (7) .....
  [1]=> object(stdClass)#525 (7) .....
我宁愿

array(2) {
  [0]=> object(App\Feed)#524 (7) .....
  [1]=> object(App\Feed)#525 (7) .....
查询只涉及一个表,没有连接等。如果我将查询生成器与DB::raw等一起使用,代码看起来会更混乱。我理解SQL注入的风险

有没有合适的方法可以做到这一点

模型代码Feed.php

use Illuminate\Database\Eloquent\Model;

class Feed extends Model
{
    .......

在这种情况下,您应该使用模型-

保持简单:


我想运行的实际查询是从feed中选择*,其中wait_seconds>TIMESTAMPDIFFSECOND,email_,NOW和GREATESTwait_seconds/6'。self::MIN_RESCAN_seconds'>TIMESTAMPDIFFSECOND,scanned_at,现在或扫描的_at为NULL时,使用多个where和DB::rawcoan Feed::query$sql->get看起来要混乱得多;是我要找的吗?这也是我改变答案的原因但是我使用了sql的查询生成器。。。。
    $result = Feeds::query()
                ->where(
                    ['wait_seconds', '>', 'TIMESTAMPDIFF(SECOND, emailed_at, NOW() )'],
                    ['GREATEST(wait_seconds / 6, '.self::MIN_RESCAN_SECONDS.')', '>', 'TIMESTAMPDIFF(SECOND, scanned_at, NOW() )']
                )
               ->orWhereNull('scanned_at')
               ->get();;
    $feeds = \App\Feed::hydrate($result);