2014-11-11 4 views
0

Я пытаюсь использовать помощник public_path для определения некоторых стандартных папок в моей модели, но я получаю следующую ошибку. Невозможно использовать вспомогательные функции в моделях? В контроллере все работает нормально.Laravel использовать public_path в модели?

class Varaimage extends \Eloquent { 

public $sizes = array(
       array('folder'=>'/large/', 'width'=>'1000'), 
       array('folder'=>'/thumb/', 'width'=>'150') 
); 

public $folder   = public_path().'/images/varor/'; 

exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'syntax error, unexpected '(', expecting ',' or ';'' in /var/www/html/kollavaran/app/models/Varaimage.php:13 

ответ

2

потому что php не разрешает (потому что он не реализован). однако вы можете это сделать.

public $folder; 

public function __construct() 
{ 
    $this->folder = public_path().'/images/varor/'; 

} 

не тестировалось хотя.

+0

Спасибо, что сработало! :) – tobros91

1

PHP не поддерживает настройку свойств с помощью функции. Вам нужно использовать метод __construct.

public $folder; 

public function __construct() { 
    $this->folder = public_path() . '/images/varor/'; 
} 

http://www.php.net/manual/en/language.oop5.properties.php

Они (свойства) определяется с помощью одной из ключевых общественных, защищенных или частных, а затем обычной декларации переменной. Это объявление может включать инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть способна быть оценена во время компиляции и не должна зависеть от информации о времени выполнения для оценки.

+0

спасибо, что сработал, попробовал с __construct, но забыл использовать $ this и использовать $ folder напрямую ... теперь все работает :) – tobros91

Смежные вопросы