ardent icon indicating copy to clipboard operation
ardent copied to clipboard

translator comes error when doing configureAsExternal use ardent standalone

Open imr092 opened this issue 8 years ago • 1 comments

at Ardent.php

line 17: use Illuminate\Validation\Factory as ValidationFactory;

line 19: use Symfony\Component\Translation\Translator;

line 512: $translator = new Translator();

line 519: self::$validationFactory = new ValidationFactory($translator);

the Illuminate\Validation\Factory needs a Illuminate\Contracts\Translation\Translator Object, but gives Symfony\Component\Translation\Translator

imr092 avatar Jun 07 '17 06:06 imr092

my way:

BaseModel.php

use Illuminate\Database\Capsule\Manager as DatabaseCapsule;
use LaravelArdent\Ardent\Ardent;
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Translation\FileLoader;
use Illuminate\Translation\Translator;
use Illuminate\Validation\Factory as ValidationFactory;
use Illuminate\Validation\DatabasePresenceVerifier;
use Illuminate\Hashing\BcryptHasher;

class BaseModel extends Ardent
{
    public $throwOnValidation = true;

    public static function configureAsExternal(array $connection, $lang = 'zh-CN') {
        $db = new DatabaseCapsule;
        $db->addConnection($connection);
        $db->setEventDispatcher(new Dispatcher(new Container));
        $db->setAsGlobal();
        $db->bootEloquent();

        $file = new Filesystem();
        $fileLoader = new FileLoader($file, dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'lang'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR);
        $translator = new Translator($fileLoader, $lang);

        self::$external = true;
        self::$validationFactory = new ValidationFactory($translator);
        self::$validationFactory->setPresenceVerifier(new DatabasePresenceVerifier($db->getDatabaseManager()));

        self::$hasher = new BcryptHasher();
    }
}

and when start: BaseModel::configureAsExternal($database);

imr092 avatar Jun 07 '17 08:06 imr092