방금 Yii2를 배우기 시작했습니다. 사용자가 외부 이미지에 URL을 입력해야하는 양식이 있습니다. URL이 있는지 확인할 수있는 규칙/유효성 검사가 있습니까?표준 [[ 'image'], 'image'] 및 [[ 'image'], 'url']은 내가 원하는 것을 수행하지 않습니다.Yii2 URL이 유효한 이미지를 가리키는 지 확인하십시오.
1
A
답변
0
그래서 모델 규칙에서 나는 validateImage 내가 같은 모델에서 쓴 사용자 정의 기능입니다
[['image'], 'validateImage']
추가 당신은 코드를 넣을 수 있습니다
['image', 'validateimagecheck'],
validateimagecheck
다음과 같은 모델에서 기능을 넣을 수 있습니다. w
public function validateimagecheck($attribute, $params)
{
if (!(file_exists($this->image))) {
$this->addError('image', 'Please enter valid image url');
}
}
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.');
}
} ],
그러나, 내 컴퓨터에서이 조금 느립니다. 그러나 한번 사용해보십시오.
// 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');
}
}
0
당신이 규칙 배열의 모델에서 사용자 지정 유효성 검사 규칙을 작성할 수 있습니다
안녕하세요, 답장을 보내 주셔서 감사합니다. 이미 해결책을 찾았습니다. 사용자 지정 함수를 만들어 규칙의 필터로 사용했습니다. – Dmitriy
@ 드미트리 파인. 자신의 질문에 대답하여 솔루션을 게시 할 수 있습니다. 다른 사람들을 도울 수 있고 흥미로울 것입니다. 너무 특별하지 않다면 ... – robsch
물론, 나는 일하는 PC에서 미안해. – Dmitriy