Welcome Guest, Not a member yet? Register   Sign In
Filter not apply
#1

(This post was last modified: 12-11-2022, 04:07 AM by motoroller.)

I have created simple fiter, then add co Config\Filter

public array $aliases = [
'csrf' => CSRF::class,
'toolbar' => DebugToolbar::class,
'honeypot' => Honeypot::class,
'invalidchars' => InvalidChars::class,
'secureheaders' => SecureHeaders::class,
'MyFilter' => MyFilter::class,
];

public $filters = [
'MyFilter' => [
'before' => ['settings/*']
],

];

When i load any controller with path settings/car
My filter dosen`t work, why?

and i dont want config this filter inside routers

or how can i do it in ROUTERS

$routes->get('/login', 'User::login',['filter'=>'usersFiltersNoAuth']);
$routes->get('/registration', 'User::registration',['filter'=>'usersFiltersNoAuth']);
$routes->get('/logout', 'User::logout');


work fine .

How can i do for an entire controller ?

$routes->group('/settings',['filter'=>'MyFilter'],function($routes){

$routes->get('car', 'Settings:Confusedtart'); // I don`t need apply filter MyFilter
$routes->get('car', 'Settings::edit'); // I need filter MyFilter
$routes->get('car', 'Settings::delete'); // I need filter MyFilter
});
Reply
#2

Hi,
It may help you.
https://forum.codeigniter.com/showthread...#pid404351
Reply
#3

(12-11-2022, 02:38 PM)datamweb Wrote: Hi,
It may help you.
https://forum.codeigniter.com/showthread...#pid404351

Its not solve of my problem
Reply
#4

step1: make filter
Code:
php spark make:filter MyFilter

step2: edit  app/filters/MyFilter.php

PHP Code:
    public function before(RequestInterface $request$arguments null)
    {
        //
          var_dump('my filter is work');
        exit();
    

step3: make controller Test
php spark make:controller Test
step4: edit :

PHP Code:
<?php

namespace App\Controllers;

use 
App\Controllers\BaseController;

class 
Test extends BaseController
{
    public function index()
    {
        echo 'text before filter!!!';
    }


step 5: edite app\Config\Filters

PHP Code:
use App\Filters\MyFilter;
    public $aliases = [
        //...
        'my-filter' => MyFilter::class,
    ];
    public $globals = [
        'before' => [
            // 'honeypot',
            // 'csrf',
            // 'invalidchars',
            'my-filter' => [
                'before' => ['settings/*']
            ],
        ],
/...
    ]; 

step 6:  add route app\Config\Routes.php

PHP Code:
$routes->get('settings''Test::index'); 

Note : You can set the filter directly in routes. For this, you don't need to set the following:
PHP Code:
    public $globals = [
        'before' => [
            // 'honeypot',
            // 'csrf',
            // 'invalidchars',
            'my-filter' => [
                'before' => ['settings/*']
            ],
        ],
/...
    ]; 

just do the following:

PHP Code:
$routes->get('settings''Test::index' , ['filter' => 'my-filter']); 

now see http://localhost:8080/settings

Code:
string(17) "my filter is work"

@motoroller If you follow the steps above, there is no problem. So it seems that your filter is not written correctly.
Reply




Theme © iAndrew 2016 - Forum software by © MyBB