Статическая переменная не переопределяется в Laravel PHP - PullRequest
0 голосов
/ 27 сентября 2018

Позвольте мне повторить мой вопрос, что я достиг, я использую плагин в laravel maatwebsite-excel v3.1.Я экспортирую красноречивую коллекцию в лист Excel.

В этом коде я пытаюсь создать несколько листов с различным стилем на отдельном листе, я ссылаюсь на веб-сайте плагина, что вбиблиотека, чтобы сделать aftersheet, создана.проверьте эту ссылку (https://laravel -excel.maatwebsite.nl / 3.0 / exports / extending.html )

Код:

    use Maatwebsite\Excel\Concerns\FromCollection;
    use Maatwebsite\Excel\Concerns\WithHeadings;
    use Maatwebsite\Excel\Concerns\WithTitle; 
    use Maatwebsite\Excel\Concerns\WithEvents;
    use Maatwebsite\Excel\Concerns\RegistersEventListeners;
    use Maatwebsite\Excel\Events\AfterSheet;
    use Maatwebsite\Excel\Events\BeforeWriting;
    use Maatwebsite\Excel\Events\BeforeExport;
    use Maatwebsite\Excel\Events\BeforeSheet;
    use PhpOffice\PhpSpreadsheet\Cell\Coordinate;

    class Export implements FromCollection, WithHeadings, WithTitle, WithEvents {

        use RegistersEventListeners;

        protected static $sheet = '';

        public function __construct($sheet) {
           self::$sheet = $sheet;

        }

        // This event function will trigger every time new instance is created.
        public static function AfterSheet(AfterSheet $event)
        {
           if(self::$sheet =='First') {
              //Changing cell style
           }
           if(self::$sheet =='Second') {
              //Changing cell style
           } 
        }

  }

Звоните по телефону:

$a = new Export('First'); //in the event function it has to echo "title1" but it is echoing "title2"
$b = new Export('Second');

Я не могу получить значение First в методе события AfterSheet() в классе.Что я делаю не так?

1 Ответ

0 голосов
/ 27 сентября 2018

Попробуйте, это предполагает, что вы хотите, чтобы каждый экземпляр сохранял свое собственное значение;

class Export {

private $title = '';

public function __construct($title) {
   $this->title = title;

}

public function getTitle() {
    return $this->title;
}

}

$a = new Export("title1");
$b = new Export("title2");

echo $a->getTitle() . ' ' .  $b->getTitle();
...