【问题标题】:Laravel use public_path in model?Laravel 在模型中使用 public_path?
【发布时间】:2014-11-11 15:01:11
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: php laravel helper


    【解决方案1】:

    因为 php 不允许这样做(因为它没有实现)。但是你可以这样做。

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

    未测试

    【讨论】:

      【解决方案2】:

      PHP 不支持使用函数设置属性。您要做的就是使用您的__construct 方法。

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

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

      它们(属性)是通过使用关键字 public、protected 或 private 之一定义的,然后是一个普通的变量声明。此声明可能包含一个初始化,但此初始化必须是一个常量值——也就是说,它必须能够在编译时进行评估,并且不能依赖运行时信息才能进行评估。

      【讨论】:

      • 谢谢,这行得通,尝试使用 __construct 但忘记使用 $this 并直接使用 $folder...现在一切正常 :)
      猜你喜欢
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 2013-09-25
      • 1970-01-01
      相关资源
      最近更新 更多