2013-03-13 2 views
0

Я пытаюсь создать сценарий в Yii. У меня есть модель под названием «Файл», которую я использую для загрузки файла. Теперь я хочу использовать ту же модель для создания каталогов. Каталоги не имеют атрибут файла, так что настройка Я, scenatio в модели, как это:Yii сценарий не работает

public function rules() 
{ 
    return array(
    array('file', 'file', 'types'=>'jpg, gif, png, jpeg, bmp', 'maxSize'=>1024 * 1024 * 10, 'tooLarge'=>'Bestand moet kleiner dan 10MB zijn.'), 
    array('file', 'file', 'on'=>'makefolder', 'allowEmpty'=>true), 
); 
} 

В контроллере я курок scenatio с $model = new File("makefolder"); Даже теперь я всегда получаю ошибку, что "Файл не может быть пустым. В качестве документации я использовал this page.

ответ

2

Только предположение (потому что ваш исходный код кажется нормально для меня), но вы могли бы попытаться установить, что первое правило действует для всех сценариев, кроме makefolder:

public function rules() 
{ 
    return array(
    array('file', 'file', 'types'=>'jpg, gif, png, jpeg, bmp', 'maxSize'=>1024 * 1024 * 10, 'tooLarge'=>'Bestand moet kleiner dan 10MB zijn.', 'except'=>'makefolder'), 
    array('file', 'file', 'on'=>'makefolder', 'allowEmpty'=>true), 
); 
} 

С теми правилами ошибка все еще Вот?

Но загрузите файл и создайте папку не одно и то же, вы должны использовать 2 уникальных модели!

+0

Ну, отлично! Очень умное решение :) – Thijs

+1

Ницца! И теперь я не уверен на 100%, второе правило необходимо. – darkheir

+0

Вы снова правы, второе правило больше не нужно. Благодаря! – Thijs