być może poruszam temat oczywisty ale nie mogę dać sobie z nim rady , proszę o pomoc:
Mam nadzieję że poniższy opis wystarczy do zobrazowania problemu:
posiadam dwa pola w formularzu:
<input type="file" name="obrazek_1" id="obrazek_1">
<input type="file" name="obrazek_2" id="obrazek_2">
Formularz po wysłaniu uruchamia funkcję:
class QuestionnaireController extends Controller{ public function insert() { $model_photo = $this ->loadModel('upload'); $model_photo -> image('obrazek_1); $model_photo -> image('obrazek_2'); } }
Załadowanie modelu odnosi się do kodu:
class UploadModel extends Model{ public function image($obrazek_nazwa) { function resizeImage($field, $cat, $sett, $nazwa_fotki, $crop='medium') { } resizeImage('obrazek_1', $cat, $sett, $nazwa_fotki_1, $crop='medium'); } }
Nie chodzi mi o kwestie tego co znajduje się w konkretnych klasach i metodach, a jedynie o kwestię konieczności wielkorotnego wywołania metody image() z różnymi parametrami podawanymi jako $obrazek_nazwa.
Dlaczego kiedy próbuję wywołać metodę image z różnymi parametrami (z poziomu klasy QuestionnaireController) serwer wyrzuca mi błąd "PHP Fatal error: Cannot redeclare resizeImage() (previously declared in /media/sf_htdocs/akuko/model/upload.php:53)" a jeżeli zrobię to do okoła czyli poprzez wywołanie resizeImage z wewnątrz klasy UploadModel a konkretniej w taki sposób:
resizeImage('obrazek_1', $cat, $sett, $nazwa_fotki_1, $crop='medium'); resizeImage('obrazek_2', $cat, $sett, $nazwa_fotki_2, $crop='medium');
wówczas problem nie występuje ?
Być może źle logicznie podchodzę do tematu , jednak czasami zachodzi koniecznośc wywołania dwa razy tej samej metody z innymi parametrami, spoza jej klasy, jak to wówczas zrobić? Czy jedynym rozwiązaniem jest przekazanie tablicy do klasy (w tym przypadku) UploadModel i dopiero w niej wykonanie operacji ?
Jeżeli coś mało jasno opisałem, oczywiście 'dopowiem'.
Z góry dzięki za pomoc w rozwiązaniu tej niejasności
