Laravel 4 在laravel中写入需要在任何控制器之前执行的函数
嗨,我正在做一个网站在拉威尔。 我试图做一个需要在任何控制器之前执行的函数 示例: 我有类似的功能Laravel 4 在laravel中写入需要在任何控制器之前执行的函数,laravel-4,Laravel 4,嗨,我正在做一个网站在拉威尔。 我试图做一个需要在任何控制器之前执行的函数 示例: 我有类似的功能 function xyz(){ //do code here } 当用户在站点上刷新页面或执行一些ajax请求时,需要执行此函数 我知道使用codeigniter有一种使用钩子的方法 $hook['pre_controller'] = array( 'class' => 'MyClass', 'function' => 'Myfuncti
function xyz(){
//do code here
}
当用户在站点上刷新页面或执行一些ajax请求时,需要执行此函数
我知道使用codeigniter有一种使用钩子的方法
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('beer', 'wine', 'snacks')
);
在laravel中是如何做到这一点的?您可以使用laravel中间件来实现这一点。中间件可以注册为所有控制器/路由的全局,并允许您执行该功能(或者您可以使用路由器组将其注册为路由子集) 例如:
<?php
namespace App\Http\Middleware;
use Closure;
class MyMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// call your function
$this->xyz();
return $next($request);
}
public function xyz()
{
// do something
}
}
我们可以使用laravel的过滤器来实现这一点。路由过滤器已被弃用,优先使用中间件,并在2015年12月laravel 5.2发布时被完全删除。@我的laravel项目版本是4.2。您为什么将其标记为laravel 5?在Laravel4.2中,必须使用过滤器。