Php Laravel 5:如何使用简单的出生日期中间件(在筛选之前)?
我想打印“生日快乐”,如果日期是匹配的,否则我想显示一些东西。因此,我在“/”路径中使用中间件 我的路线Php Laravel 5:如何使用简单的出生日期中间件(在筛选之前)?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我想打印“生日快乐”,如果日期是匹配的,否则我想显示一些东西。因此,我在“/”路径中使用中间件 我的路线 Route::get('/', ['middleware' => 'dob', function(){ return 'Hello World'; }]); 我的内核 protected $routeMiddleware = [ 'auth' => 'App\Http\Middleware\Authenticate', 'auth.bas
Route::get('/', ['middleware' => 'dob', function(){
return 'Hello World';
}]);
我的内核
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
'dob' => 'App\Http\Middleware\DateOfBirth'
];
我的中间件/DateOfBirth.php
public function handle($request, Closure $next)
{
if($request->date('d/m') == '15/09' ){
echo 'happy birthday';
}
return $next($request);
}
我只是将当前日期更改为15,并访问公共应用程序,但为什么它是show调用undefined方法illighted\Http\Request::date()
而不是“生日快乐”
提前感谢。例外情况是,问题在于您对请求对象的date()方法的调用。默认请求类未实现此方法-是否使用此方法扩展请求类?或者您想访问任何输入数据或模型中的数据,还是仅仅指php date()函数?
如果您告诉我们这个方法调用应该做什么,那么我们可以提供更好的帮助 正如其他人指出的,请求对象上没有
date()
方法。我想你需要更像:
public function handle($request, Closure $next)
{
$date = $request->get('date');
if((new \DateTime($date))->format('d/m') == '15/09' ){
echo 'happy birthday';
}
return $next($request);
}
只是与Laravel 4中的过滤器略有不同
public function handle($request, Closure $next)
{
if(date('d/m') == '15/09' ){
echo 'happy birthday';
}
return $next($request);
}
如果日期已传递到路由,请使用
print\r($request)
。@aldrin27我应该将print\r($request)
放在哪里?也许你能帮我回答。谢谢。在你的if语句上面然后退出您希望输出什么$request->date()
?您是在尝试检索名为date的输入,还是仅尝试获取当前日期?如果是这样,您不需要请求对象来检索它,您可以使用date('d/m')
。