小编Lar*_*dee的帖子

如何在 PasswordBroker Laravel 5 中覆盖重置和 validatePasswordWithDefaults

我对这个框架真的很陌生,它对我来说似乎很神奇。我什至找不到它在路由和控制器中调用函数reset()的地方。但我知道在浏览谷歌一整天后,它已经在控制器之前被调用了。

问题是,我一直在测试覆盖PasswordBroker中的函数reset和函数validatePasswordWithDefaults

我通过扩展PasswordBroker来做到这一点,但似乎我必须将 Illuminate\Auth\Passwords\PasswordBroker 中的所有功能完全迁移到我的 App\Services\PasswordBroker 中,否则我会遇到错误:

Target [Illuminate\Contracts\Auth\UserProvider] is not instantiable
Run Code Online (Sandbox Code Playgroud)

我的示例代码在这里:

将我的PasswordBroker绑定到IlluminatePasswordBroker的自定义PasswordServiceProviders:

<?php namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class PasswordResetServiceProvider extends ServiceProvider {

/**
 * Bootstrap the application services.
 *
 * @return void
 */
public function boot()
{
    //
}

/**
 * Register the application services.
 *
 * @return void
 */
public function register()
{
    //
    $this->app->bind(
        'Illuminate\Contracts\Auth\PasswordBroker','App\Services\PasswordBroker'
        );


}

}

Custom PasswordBroker:
<?php
    namespace App\Services;


    use Illuminate\Contracts\Auth\UserProvider;
    use Illuminate\Auth\Passwords\TokenRepositoryInterface;
    use Illuminate\Auth\Passwords\PasswordBroker as BasePasswordBroker;
    use Illuminate\Contracts\Auth\PasswordBroker as ContractPasswordBroker;

    use …
Run Code Online (Sandbox Code Playgroud)

php overriding laravel laravel-5

4
推荐指数
1
解决办法
4101
查看次数

Laravel 5 函数名称必须是字符串错误

我收到致命错误:

函数名必须是字符串

当尝试return $redirect()->to(blah blah blah...

    if($act=="ban"){
        $ban_until = $request->input('ban_until');
        if(Ragnarok::temporarilyBan($account_id,$banned_by,$ban_until,$ban_reason)){
            return $redirect()->to('banlist');
        }else{
            return $redirect()->to('banlist')->withErrors('Failed to ban, database error');
        }
    }else if($act=="unban"){
        if(Ragnarok::unBan($account_id,$banned_by,$ban_reason)){
            return $redirect()->to('banlist');
        }else{
            return $redirect()->to('banlist')->withErrors('Failed to unban, database error');
        }
    }
Run Code Online (Sandbox Code Playgroud)

有人面临这个错误吗?

php laravel-5

4
推荐指数
1
解决办法
3万
查看次数

无法为 php7.4 加载 Imagick

我知道有很多关于将 imagick 安装到 Php7+ 的问题,不幸的是所有的答案都没有解决我的问题。

我只是更新到 php7.4,所以我按照之前的设置从 7.3、7.2 到启用 imagick,基本上:

echo extension=imagick.so > /etc/php/7.4/mods-available/imagick.ini
Run Code Online (Sandbox Code Playgroud)

然后软链接到“fpm”和“cli”目录:

ln -s /etc/php/7.4/mods-available/imagick.ini /etc/php/7.4/fpm/conf.d/20-imagick.ini
ln -s /etc/php/7.4/mods-available/imagick.ini /etc/php/7.4/cli/conf.d/20-imagick.ini
Run Code Online (Sandbox Code Playgroud)

重新加载了 php7.4-fpm,但是 imagick 还是加载失败

php -i验证| grep imagick但出现以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib/php/20190902/imagick.so (/usr/lib/php/20190902/imagick.so: cannot open shared object file: No such file or directory), /us
r/lib/php/20190902/imagick.so.so (/usr/lib/php/20190902/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

注意:
- 我试图清除 …

php upgrade imagick

1
推荐指数
1
解决办法
8536
查看次数

标签 统计

php ×3

laravel-5 ×2

imagick ×1

laravel ×1

overriding ×1

upgrade ×1