我正在使用Slim和Eloquent模型等的Illuminate Database包構建API。我已經使用Capsule實例化數據庫處理程序,如README
中所示。但是,現在我想在我的模型上使用驗證功能,而無需安裝完整的Laravel套件,但我無法將自己的頭圍繞在此庫的設計中。在獨立的非Laravel應用程序中照亮驗證程序
我該怎麼辦?看起來Laravel提供的文檔非常期待您使用Laravel開箱即用。
我正在使用Slim和Eloquent模型等的Illuminate Database包構建API。我已經使用Capsule實例化數據庫處理程序,如README
中所示。但是,現在我想在我的模型上使用驗證功能,而無需安裝完整的Laravel套件,但我無法將自己的頭圍繞在此庫的設計中。在獨立的非Laravel應用程序中照亮驗證程序
我該怎麼辦?看起來Laravel提供的文檔非常期待您使用Laravel開箱即用。
我不建議這樣做,但Laravel驗證器可能不是你想要的。我建議看看Symfony或Zend Framework(2+)中的驗證器類。他們的工作也非常的獨立驗證,事實上我正在使用一個Laravel項目ZF2表單類和確認的時刻,因爲Laravel形式和驗證類只是沒有達到標準。
這可能不是您想要聽到的答案,但它可能會爲您節省一些長期的痛苦。
完全同意這裏。我已經與ZF1驗證和表單元素(與ZF2位),豐富的經驗和它在不同的聯賽Laravel。 Laravel的前端和表單/驗證程序看起來像是事後的想法。 – dKen 2016-09-21 07:16:39
我只是想知道同樣的事情,我在這裏一年後發現delatbabel的回答是嚴重的不足。我確實發現了以下Gist,其中spekkionu有一個相當簡單的設置讓你開始。 (它在我的機器上工作??; P)它顯示瞭如何爲工廠製作翻譯器等等。當您將作曲家導入illuminate/validation
時,它都包含在內。
希望它能幫助: https://gist.github.com/spekkionu/e9103993138e666f9f63
最佳,
這裏是當前版本的解決方案:Laravel 5.4。 的composer.json文件:
{ "name": "Validation standalone", "require": { "php": ">=5.6.4", "illuminate/validation": "5.4.*", "illuminate/translation": "5.4.*" } }
請注意,我們還必須要求 「亮/翻譯」: 「5.4 *」。然後在你的PHP文件:
use Illuminate\Validation;
use Illuminate\Filesystem;
use Illuminate\Translation;
include 'vendor/autoload.php';
$filesystem = new Filesystem\Filesystem();
$fileLoader = new Translation\FileLoader($filesystem, '');
$translator = new Translation\Translator($fileLoader, 'en_US');
$factory = new Validation\Factory($translator);
$messages = [
'required' => 'The :attribute field is required.',
];
$dataToValidate = ['title' => 'Some title'];
$rules = [
'title' => 'required',
'body' => 'required'
];
$validator = $factory->make($dataToValidate, $rules, $messages);
if($validator->fails()){
$errors = $validator->errors();
foreach($errors->all() as $message){
var_dump($message);
}
}
在這裏,我故意錯過了規定的驗證數據的「身體」字段,以便顯示驗證錯誤。
使用作曲家加入'照亮/ validation'您的需求將下載所需的依賴準備使用您的非'laravel'應用 – 2015-02-18 00:46:15
呀,但我不明白的是如何使用這個包。在包有一個'Factory'類和'Validator'類,既需要'TranslatorInterface'作爲參數傳遞給它們的構造。我通過什麼? – Viktor 2015-02-18 22:25:45