查找已于12小时前在Laravel

时间:2017-08-04 05:53:17

标签: laravel

这是我的advertisements表:

advertisements table

这是我的works表:

works table

我想查找advertisements表格中的数据,该表格已于12小时前点击过works表格,add_id列。

工作模式:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Work extends Model
{

}

广告模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Advertisement extends Model
{
    //
} 

控制器:

 public function myadd()
 {
     $clicked_add = Work::where('user_id', Auth::user()->id)->where('created_at', '>=', Carbon::now()->subDay())->get();
     $adds = Advertisement::orderBy('id', 'desc')->take(5)->get();
     return View::make('pages.add', compact("adds","clicked_add"));
 }

2 个答案:

答案 0 :(得分:0)

首先,你必须在作品模型上设置belongsTo广告关系,而不是急切地用广告加载作品对象。 对于-i.e-:您的关系函数名称是可以像这样调用的工程模型上的广告。

$works=Works::with(['advertisements'=>function($query){
     $query->where('update_time','=',\Carbon\Carbon new carbon()->subHours(12))
}])->get();

答案 1 :(得分:0)

获取过去12小时内点击过的广告。

(我假设一旦用户点击你的广告就会生成work.created_at)

试试这个

$works = Advertisement ::leftJoin('works ', 'works.add_id','=','advertisement.id')
                      ->select('advertisement.*')
                      ->where('works.created_at','>=',\Carbon\Carbon::now()->subHours(12))
                      ->get();