我已创建此控制器。这是我从用户那里获得所有广告(avisos)的地方。
class AdController extends Controller
{
public function index(Request $request)
{
$page = $request->get('page',1);
$perPage = 15;
$offset = ($page * $perPage) - $perPage;
$avisos = Ad::select(['id','user_id','title','content','created_at','moderated_at'])
->WithNotModerate()
->orderBy('moderated_at', 'asc')
->paginate(15);
if($request->has('user_id'))
$avisos = Ad::select(['id','user_id','title','content','created_at','moderated_at'])
->WithNotModerate()
->where('user_id','like','%'.$request->user_id.'%')
->orderBy('moderated_at', 'asc')
->paginate(15);
if ($request->ajax()) {
return view('admin.avisos.data', ['avisos' => $avisos])->render();
}
return view('admin.avisos.index', compact('avisos'));
}
以下是我在刀片视图中呈现的所有广告,包括所有用户的所有广告。
@foreach ($avisos as $aviso)
<tr>
<td>{{$aviso->id}}</td>
<td>{{$aviso->user_id}}</td>
<td>{{str_limit($aviso->title, 40)}}</div></td>
<td>{{str_limit($aviso->content, 40)}}</div></td>
<td>{{$aviso->created_at->diffForHumans()}}</td>
<td>{{$aviso->moderated_at}}</td>
</tr>
@endforeach
我想检查用户是否有多个广告&#39; created_at&#39;在过去的15天里,我可以在表格行中添加一个类
我试过这样的事情
@foreach ($avisos as $aviso)
<?php
$date = \Carbon\Carbon::today()->subDays(15);
$already = DB::table('ads')
->where('user_id','=','$aviso->user_id')
->where('created_at' ,'=', date($date))
->get();
var_dump($already);
?>
<tr>
<td>{{$aviso->id}}</td>
<td>{{$aviso->user_id}}</td>
<td>{{str_limit($aviso->title, 40)}}</div></td>
<td>{{str_limit($aviso->content, 40)}}</div></td>
<td>{{$aviso->created_at->diffForHumans()}}</td>
<td>{{$aviso->moderated_at}}</td>
</tr>
@endforeach
返回
object(Illuminate\Database\Eloquent\Collection)#3073 (1) { ["items":protected]=> array(0) { } } for each ad...
答案 0 :(得分:1)
您错误地使用了date
功能。 date
的第一个参数除了字符串形式的有效格式外,您给出的是Carbon
个实例。
但是因为您已经拥有Carbon
的实例,所以您不需要使用date
。格式化Carbon
实例以匹配您在数据库中的内容。
您还要针对字符串user_id
而不是实际变量值检查$aviso->user_id
。
'$aviso->user_id'
和$aviso->user_id
之间存在差异。删除单引号以获得预期值。
$date = \Carbon\Carbon::today()->subDays(15);
$already = DB::table('ads')
->where('user_id','=',$aviso->user_id)
->where('created_at' ,'=', $date->format('Y-m-d H:i:s'))
->get();