2016-04-01 14 views
0

Merhaba, laravel'de bir web sitesi yapıyorum. Herhangi bir denetleyiciden önce çalışması gereken bir işlev gibi yapmaya çalışıyorum.Herhangi bir kontrolörden önce çalıştırılması gereken laravelde fonksiyonu yazın

Örnek: Ben

function xyz(){ 
    //do code here 
} 

Bu fonksiyon yürütmek için gereken işlevi gibi olduğunda ferahlatıcı sayfaya göre site veya bazı ajax requst yapmayı kullanıcı.

Bunu kullanarak kanca

$hook['pre_controller'] = array(
     'class' => 'MyClass', 
     'function' => 'Myfunction', 
     'filename' => 'Myclass.php', 
     'filepath' => 'hooks', 
     'params' => array('beer', 'wine', 'snacks') 
); 

Bunu yapmanın laravel içinde yolu nedir yapmak için bir yol yoktur CodeIgniter'da ile farkındayım?

cevap

1

Bunu başarmak için Laravel Middleware'i kullanabilirsiniz. Ara katman tüm kontrolörler/yollar için global olarak kaydedilebilir ve bu fonksiyonu yürütmenize izin verir (veya yönlendirici gruplarını kullanarak rotaların alt kümesi için kaydedebilirsiniz).

Örnek:

<?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 documentation on Middleware bakınız.

+0

Bunu yapmak için Filter of laravel kullanabiliriz. – Kango

+0

Rota filtreleri, ara katman yazılımları tercih edilmeden kaldırıldı ve Aralık 2015'te Laravel 5.2 sürümü tamamen kaldırıldı. –

+0

@My laravel proje sürümü 4.2 – Kango