Size: a a a

2021 January 19

AA

Am Ambrion in Evolution CMS
Вячеслав Кузьменко
По видеоурокам изучаю.
Есть базовый контроллер BaseController.php
<?php

namespace EvolutionCMS\Main\Controllers;

use Illuminate\Support\Facades\Cache;

{
   public $data = [];

   public function __construct()
   {
       $this->evo = EvolutionCMS();
       ksort($_GET);
       $cacheid = md5(json_encode($_GET));
       if ($this->evo->getConfig('enable_cache')) {
           $this->data = Cache::rememberForever($cacheid, function () {
               $this->globalElements();
               $this->render();
               return $this->data;
           });
       } else {
           $this->globalElements();
           $this->render();
       }
       $this->noCacheRender();
       $this->sendToView();
   }

   public function render()
   {
       $this->data['test'] = 'Test from BaseController';
   }


Есть трейт BlogController.php

<?php
namespace EvolutionCMS\Main\Controllers;

trait BlogController {
 public function render()
   {
     parent::render();
     $this->data['test_blog'] = 'Test from BlogController';
   }


Есть контроллер PersonController.php, где пытаюсь расшириться от BaseController и использовать трейт BlogController

<?php
namespace EvolutionCMS\Main\Controllers;

class PersonController extends BaseController {
 use BlogController ;

 public function render()
   {
       parent::render();
 $this->data['test'] = 'Test from PersonController ';
   }

Вот из трейта во view data['test_blog'] не передается и вообще не реагирует... 🤷🏻‍♂️
Трейт виден, ибо если неправильно написать - ругается, что нет такого.
Где я туплю? 😕
Как Вам сказать. ((%
источник

МН

Михаил Носков... in Evolution CMS
Вячеслав Кузьменко
По видеоурокам изучаю.
Есть базовый контроллер BaseController.php
<?php

namespace EvolutionCMS\Main\Controllers;

use Illuminate\Support\Facades\Cache;

{
   public $data = [];

   public function __construct()
   {
       $this->evo = EvolutionCMS();
       ksort($_GET);
       $cacheid = md5(json_encode($_GET));
       if ($this->evo->getConfig('enable_cache')) {
           $this->data = Cache::rememberForever($cacheid, function () {
               $this->globalElements();
               $this->render();
               return $this->data;
           });
       } else {
           $this->globalElements();
           $this->render();
       }
       $this->noCacheRender();
       $this->sendToView();
   }

   public function render()
   {
       $this->data['test'] = 'Test from BaseController';
   }


Есть трейт BlogController.php

<?php
namespace EvolutionCMS\Main\Controllers;

trait BlogController {
 public function render()
   {
     parent::render();
     $this->data['test_blog'] = 'Test from BlogController';
   }


Есть контроллер PersonController.php, где пытаюсь расшириться от BaseController и использовать трейт BlogController

<?php
namespace EvolutionCMS\Main\Controllers;

class PersonController extends BaseController {
 use BlogController ;

 public function render()
   {
       parent::render();
 $this->data['test'] = 'Test from PersonController ';
   }

Вот из трейта во view data['test_blog'] не передается и вообще не реагирует... 🤷🏻‍♂️
Трейт виден, ибо если неправильно написать - ругается, что нет такого.
Где я туплю? 😕
ну не, так нельзя
источник

AA

Am Ambrion in Evolution CMS
Вячеслав Кузьменко
По видеоурокам изучаю.
Есть базовый контроллер BaseController.php
<?php

namespace EvolutionCMS\Main\Controllers;

use Illuminate\Support\Facades\Cache;

{
   public $data = [];

   public function __construct()
   {
       $this->evo = EvolutionCMS();
       ksort($_GET);
       $cacheid = md5(json_encode($_GET));
       if ($this->evo->getConfig('enable_cache')) {
           $this->data = Cache::rememberForever($cacheid, function () {
               $this->globalElements();
               $this->render();
               return $this->data;
           });
       } else {
           $this->globalElements();
           $this->render();
       }
       $this->noCacheRender();
       $this->sendToView();
   }

   public function render()
   {
       $this->data['test'] = 'Test from BaseController';
   }


Есть трейт BlogController.php

<?php
namespace EvolutionCMS\Main\Controllers;

trait BlogController {
 public function render()
   {
     parent::render();
     $this->data['test_blog'] = 'Test from BlogController';
   }


Есть контроллер PersonController.php, где пытаюсь расшириться от BaseController и использовать трейт BlogController

<?php
namespace EvolutionCMS\Main\Controllers;

class PersonController extends BaseController {
 use BlogController ;

 public function render()
   {
       parent::render();
 $this->data['test'] = 'Test from PersonController ';
   }

Вот из трейта во view data['test_blog'] не передается и вообще не реагирует... 🤷🏻‍♂️
Трейт виден, ибо если неправильно написать - ругается, что нет такого.
Где я туплю? 😕
Нужно ВЫЗВАТЬ из контроллера ФУНКЦИЮ из ТРЕЙТА, которая должна ВЕРНУТЬ что-то. У Вас сейчас простое переопределение.
источник

AA

Am Ambrion in Evolution CMS
https://laravel.demiart.ru/using-traits-in-laravel/ вот тут вроде яснее
источник

МН

Михаил Носков... in Evolution CMS
для PersonController parent = BaseController, а не BlogController. ну и называть лучше BlogTrait
источник

AA

Am Ambrion in Evolution CMS
Это помимо всего, да.
источник

AA

Am Ambrion in Evolution CMS
Ключевое что у Вас в трейте идет присвоение значения и ничего не возвращается. Дальше Вы просто нигде не указываете что берете из трейта и просто ничего получаете.
источник

ВК

Вячеслав Кузьменко... in Evolution CMS
Михаил Носков
для PersonController parent = BaseController, а не BlogController. ну и называть лучше BlogTrait
Да с этим все понятно, это я навскидку собрал вопрос до кучи. 😀
источник

ВК

Вячеслав Кузьменко... in Evolution CMS
Am Ambrion
Ключевое что у Вас в трейте идет присвоение значения и ничего не возвращается. Дальше Вы просто нигде не указываете что берете из трейта и просто ничего получаете.
+ Это я понимал интуитивно, чувствовал, что элементарно туплю.
Но пока каша в голове - знания ж околонулевые, последний раз сайт делал лет 10 назад и то по урокам Ефимова, а тут решил вспомнить и то, чего не знал.
Так бы просто и написали - добавить ретурн перед пременной! 😂
Вощем год 2020 был не простым, 2021 тоже не задался с самого начала, еще одна беда - я таки решил сделать сайт! 😳
Такшта готовьтесь - впереди еще много детских глупых вопросов. 😁
источник

A

Axenia in Evolution CMS
yet_warm (97.17) увеличил карму Ambrion (1249.58)
источник

ON

Oleg Nosov in Evolution CMS
Вячеслав Кузьменко
+ Это я понимал интуитивно, чувствовал, что элементарно туплю.
Но пока каша в голове - знания ж околонулевые, последний раз сайт делал лет 10 назад и то по урокам Ефимова, а тут решил вспомнить и то, чего не знал.
Так бы просто и написали - добавить ретурн перед пременной! 😂
Вощем год 2020 был не простым, 2021 тоже не задался с самого начала, еще одна беда - я таки решил сделать сайт! 😳
Такшта готовьтесь - впереди еще много детских глупых вопросов. 😁
Это будет самый страшный сайт в рунете?
источник

AA

Am Ambrion in Evolution CMS
Вячеслав Кузьменко
+ Это я понимал интуитивно, чувствовал, что элементарно туплю.
Но пока каша в голове - знания ж околонулевые, последний раз сайт делал лет 10 назад и то по урокам Ефимова, а тут решил вспомнить и то, чего не знал.
Так бы просто и написали - добавить ретурн перед пременной! 😂
Вощем год 2020 был не простым, 2021 тоже не задался с самого начала, еще одна беда - я таки решил сделать сайт! 😳
Такшта готовьтесь - впереди еще много детских глупых вопросов. 😁
Можно сразу получить прямой ответ, конечно же. Только Вы дали примеры где видно что пытаетесь разобраться и нужно чтобы дошло самостоятельно, тем более что это регулярная ошибка не только новичков.  Дальше проще будет.
Одно правило - функция должна возвращать результат, иначе зачем она? (;
источник

ВК

Вячеслав Кузьменко... in Evolution CMS
Oleg Nosov
Это будет самый страшный сайт в рунете?
Та не все так печально на самом деле - я вполне адекватен и достаточно быстро учусь.  😉
источник

ON

Oleg Nosov in Evolution CMS
Вячеслав Кузьменко
Та не все так печально на самом деле - я вполне адекватен и достаточно быстро учусь.  😉
то есть достаточно талантлив, чтобы сделать самый страшный сайт 😂
а всего-то надо было взять вордпресс
источник

ON

Oleg Nosov in Evolution CMS
народ, с какой стороны зайти для авторизации в 2.х ?   запускать formlister во вьюхе не хочется, а как его через контроллеры правильно запускать - пока не могу подобрать вариант
источник

E

EVO bot Лёшка in Evolution CMS
Oleg Nosov
народ, с какой стороны зайти для авторизации в 2.х ?   запускать formlister во вьюхе не хочется, а как его через контроллеры правильно запускать - пока не могу подобрать вариант
Читай документацию ©(Pathologic)
https://docs.evo.im/04_extras/formlister.html
источник

ВК

Вячеслав Кузьменко... in Evolution CMS
Am Ambrion
Можно сразу получить прямой ответ, конечно же. Только Вы дали примеры где видно что пытаетесь разобраться и нужно чтобы дошло самостоятельно, тем более что это регулярная ошибка не только новичков.  Дальше проще будет.
Одно правило - функция должна возвращать результат, иначе зачем она? (;
Да все правильно. Я уже с неделю плотно сел ковырять 2.0.4.
Успешно наступил на пару десятков грабель, пару раз даже на одни и те же.
Но тем не менее туман развеивается и становится уже не так страшно, а то я с год уже слежу за чатом и как-то стремно было... все так бурно развивается. 😁
источник

AA

Am Ambrion in Evolution CMS
(;
источник

ON

Oleg Nosov in Evolution CMS
Вячеслав Кузьменко
Да все правильно. Я уже с неделю плотно сел ковырять 2.0.4.
Успешно наступил на пару десятков грабель, пару раз даже на одни и те же.
Но тем не менее туман развеивается и становится уже не так страшно, а то я с год уже слежу за чатом и как-то стремно было... все так бурно развивается. 😁
во, насчёт бурно - это в точку, внезапная версия 3, когда ещё переход на 2 не сделан - это прям добило
источник

ВК

Вячеслав Кузьменко... in Evolution CMS
Oleg Nosov
народ, с какой стороны зайти для авторизации в 2.х ?   запускать formlister во вьюхе не хочется, а как его через контроллеры правильно запускать - пока не могу подобрать вариант
О, вот как раз подобный вопрос у меня в очереди. 😁
источник