私はちょうどYii2の学習を始めました。 私はユーザーが外部イメージにURLを入力する必要があるフォームを持っています。 このURLが存在するかどうかを確認できるルール/検証がありますか?標準[['image']、 'image']、[['image']、 'url']は、私がしたいことをしていません。Yii2 URLが有効な画像を指しているかどうか確認してください
1
A
答えて
0
だからモデル規則で私はvalidateImageは私が同じモデルに書いたカスタム関数である
[['image'], 'validateImage']
を追加しました:
// function that checks if path leads to an actual image
public function validateImage($attribute, $params, $validator) {
if (!($something = @getimagesize($this->$attribute))) {
$this->addError($attribute, 'Such an image doen\'t exist');
}
}
2
あなたはこのように独自の検証を追加することができます。しかし、私のマシン上で、これは少し遅いです
['image', function($attribute, $params) {
if (filter_var($this->image, FILTER_VALIDATE_URL) === FALSE) {
$this->addError('image', 'Not an URL.');
return;
}
try {
$headers = get_headers($this->image);
if (!stripos($headers[0], "200 OK"))
$this->addError('image', 'Invalid URL.');
} catch (\Exception $e) {
$this->addError('image', 'Invalid URL.');
}
} ],
。しかし、試してみてください。
0
あなたが規則配列内のモデルでカスタム検証ルールを記述することができますあなたは、コードの下に置くことができます
['image', 'validateimagecheck'],
することができますベロのようなモデルでvalidateimagecheck
fucntion w
関連する問題
- 1. URLが有効かどうかを確認してください。
- 2. URLがAndroidで有効かどうかを確認してください。
- 3. 古いfacebookのアクセストークンが有効かどうか確認してください
- 4. 画像が有効であることを確認してください
- 5. $ ethereumaddressが有効かどうかを確認してください
- 6. RGBカラーコードが有効かどうかを確認してください
- 7. プログラム内でhddが有効かどうかを確認してください
- 8. iOSデバイストークンが有効かどうかを確認してください
- 9. SharePoint Online URLが有効なドキュメントライブラリであるかどうかを確認してください。
- 10. URLがまだ有効か、永久に移動しているかを確認してください。
- 11. 画像がロード可能かどうかを確認してください。
- 12. 指定された範囲が有効かどうかVBAで確認してください
- 13. どのようなcssホバー状態が有効になっているかを確認してください
- 14. BlackBerry gpsが有効になっているかどうか確認してください
- 15. Pylonsアプリケーションでデバッグが有効になっているかどうか確認してください
- 16. Javascript/ImagesLoaded:ボディー背景画像がロードされているかどうかを確認してください。
- 17. Django:特定のURLに画像が存在するかどうか確認してください
- 18. Moment.jsで有効なhh:mmフォーマットを確認してください
- 19. 有効なファイル拡張子を確認してください
- 20. Google APIクライアントのOAuth2アクセストークンが有効かどうかを確認してから使用してください。
- 21. PHP:リンクが画像であるかどうかチェックしてください。存在するかどうかを確認してください。
- 22. サービスワーカーキャッシュにURLが存在するかどうか確認してください。
- 23. DIVに画像が含まれているかどうかを確認してください
- 24. URLを確認してください
- 25. プロセスがアイドリングしているかどうかを確認してください。
- 26. flinkがサポートしているかどうかを確認してください。
- 27. C++:文字列が "strtol"を使用する有効な整数かどうか確認してください
- 28. 画像が有効かどうかを確認するPNGファイル
- 29. RunOnUiThreadが必要かどうか確認してください。
- 30. Curlドメインがルートかどうか確認してください。
こんにちは、私はすでに解決策を見つけました。私はカスタム関数を作成し、それをルールのフィルタとして配置しました。 – Dmitriy
@Dmitriy Fine。あなた自身の質問に答えてあなたのソリューションを投稿したいかもしれません。他の人にも役立つかもしれないし、面白いかもしれない。それはあまりにも特別でない場合... – robsch
確かに、私は私の仕事のPCから遠慮していた申し訳ありません。 – Dmitriy