• Как исправить неканонические на laravel?

    @lod2007
    Программист
    На главном шаблоне прописываешь
    <link rel="canonical" href="{{{ url()->current() }}}"/>
    Ответ написан
    Комментировать
  • Как установить сканер на Linux Mint?

    @lod2007
    Программист
    После перехода на Linux Mint 21 слетели дрова на МФУ Samsung 4321, в настройках сканер определялся как "SAMSUNG ORION multi-function peripheral" - при сканировании через него сканер зависал и ничего не сканировал.
    Решение: качаем дрова с сайта HP (теперь вся поддержка принтеров Samsung под HP), там есть архив с дровами под Linux. Распаковываем архив, в архиве из терминала сначала запускаем uninstall.sh (уберутся кривые дрова), а после этого install.sh - процесс установки сам установит дрова и переопросит порты USB. После чего при запуске XSane (или другой программы) будет вопрос, какой сканер выбрать - выбираем новый (не SAMSUNG ORION) - и все работает.
    Ответ написан
    Комментировать
  • Что лучше использовать веб-разработчику: Linux Mint или Ubuntu?

    @lod2007
    Программист
    Минт. Все просто и доступно из коробки. Интерфейс как winXP и win7.
    У мну 2 года работает на виртуалке 24/7 - полет нормальный. Установлено: Nginx+MSSQL (да, сейчас и под Linux).
    Инструменты: VSCode, Git, AzureDataStudio.
    Против убунты: из коробки она голая(ставил Ubuntu 19.04) - много надо доустанавливать и настраивать, в Минте интерфейс проще и практичней из коробки.
    Ответ написан
    Комментировать
  • AS OLAP. Почему нет данных в середине сводной таблицы?

    @lod2007 Автор вопроса
    Программист
    Сам спросил - сам ответил.

    Кривые данные брались из БД OLAP (читай куб) - там действительно были рассчитаны данные не верно, что показал MDX-запрос в Management Studio. Почему я считал, что данные в кубе верные!? потому что делал процессинг партиции из проекта куба в Business Intelligence Development Studio (читай MS Visual Studio). Там портиция процессится, и в обозревателе куба (Browser) строится отчет с нормальными данными. Но вот в саму БД пересчитанные данные не попадают! Скорей всего в диалоге процессинга надо ставить галочку: Change Settings -- > Process Affected Objects - тогда данные должны после расчета прописаться и на сервере (не проверял, но думаю так и есть).
    Проблему решил так: запроцессил партицию непосредственно в Management Studio. Данные рассчитались и стали нормально отображаться и в MDX-запросе, и в Excel.

    Вывод: без галочки "Process Affected Objects" в Visual Studio процессинг происходит, но данные в БД куба не попадают. а остаются где-то на локальной машине, с которой делали пересчет.
    Ответ написан
    Комментировать
  • Какой запрос нужно написать, чтобы вывести уровень вложенности для пункта меню?

    @lod2007
    Программист
    Вот, лови. Тут синтаксис на Т-SQL, но под другую СУБД переделать легко. На хабре есть статья про рекурсию. там и про MySQL рекурсия показана.
    go
    with myrec (ProdName,id,idParent,levell) as
    (
    Select CONVERT(varchar(255), ProdName),id,idParent,0 from Products where idParent=-1
    union ALL
    Select CONVERT(varchar(255),d.ProdName+'\'+a.ProdName) as ProdName,a.id,a.idParent,levell+1 from Products a
    inner join myrec d on d.id=a.idParent)

    select b.ProdName as ProdName,b.id,b.idParent,levell from Products a
    right join myrec b on a.id = b.idparent
    where b.id=(select idparent from Products where id=35)

    go
    Ответ написан
    Комментировать
  • Как написать SQL запрос, в котором в Where выполнилось бы условие: разница между балансовыми счетами (40302-40301)>0?

    @lod2007 Автор вопроса
    Программист
    Вопрос Закрыт.
    Делаю через Join таблицы самой на себя. Для этого пришлось запрос делать на pl/|sql, где можно соединять таблицы.
    Ответ написан
    Комментировать
  • С каким языком программирования может найти работу и новичок?

    @lod2007
    Программист
    Просто нарабатывай опыт. Синтаксис php - один из самых легких (читай GW Basic) для понимания и усвоения, в том числе и ООП, но в php реализовано много фишек.
    Делай больше практики - нарабатывай опыт. И самое главное, знай основы алгоритмов, например, быстрая сортировка, быстрый поиск, рекурсия, работа с массивами. Глаза на лоб вылазят, когда смотришь в обучающем видео ролике переменные типа: s1,s2,...s22 - и все это еще столбиком присваивается.!
    Когда будет опыт лет 5-10, не важно будет какой язык - ты умеешь программировать, язык порсто синтаксис: стандартные функции и объявления классов называются другими словами, но по сути это все одно и тоже, просто набор и функционал этих функций стандартных в одних языках больше, в других меньше.
    Ответ написан
    Комментировать
  • MVC. Как преобразовать (вынести) View из контроллера в модель?

    @lod2007 Автор вопроса
    Программист
    Не знаю, с чем было связано, может комп глючил. Но сейчас все работает так, как и должно было работать с самого начала:
    //Controler.php
    $Cat= new Category(); //создаем объект класса
    $Cat->id=$id;
    $Cat->GetData();
    $Cat->Display(); // объект сам знает как себя отображать
    
    //Category_Model.php
    Class Category() {
    ...
    public function Display(){
      include('Category_view.php'); 
      }} //Class Category
    //Category_view.php
    <div>$this->MyString</div>

    Для чего это нужно!? Вот для чего. Отправляем на сервер AJAX команду вида: класс1/метод1/праметры/класс2/метод2/метод3. Т.е. Некоторый объект класса 1 должен выполнить методы: 1 (а может 2 и 3) с параметрами, а так же класс 2 должен выполнить методы 2,3 (а может и метод 1 если он у него есть) так же с праметрами.

    В Роутере строка разбирается на слова и запускается механизм:
    foreach ($_POST as $Val) {
        if (class_exists($Val)) { //проверяем, есть ли такой класс
        $MyClass=$Val; //запоминаем имя кассса
        $MyObj= new $Val();//создаем объект
       }
      
      if (!empty($MyObj)) { //если создали экземпляр класса, присваиваем ему свойства
       foreach ($_POST as $prop => $obj) {
         if (property_exists($MyClass,$obj)){ //проверяем есть ли у класса свойство, если есть присваиваем его значение
          $MyObj->$prop=$obj;
          }
        }
      }
    
     foreach ($_POST as $Met) {//  отдельно выполняем методы, после заполнения параметров
      if (!empty($MyObj)) { //если создали экземпляр класса
          if (method_exists($MyClass,$Met)){ //проверяем есть ли у класса метод, если есть, то выполняем его
          $MyObj->$Met(); //выполняем метод
          }  
        } 
      }

    Все это избавляет нас в контролере от писанины вида:
    if ($Conntrol=="LoadCentrChild") {
          if ($Action=="сlick") {
                  $Cat = new Catalog ();
                  $Cat->idLeft=$params["id"];//отправляем на вход id, по которому кликнули
                  $Cat->LoadLeftParent();//загружаем левую панель
                  $Cat->Display();/
       }
    }
    if ($Conntrol=="NewCategory") {
       if ($Action=="Create") {
           $Category = new Category();
           $Category->NameCat=$params["NameCat"];
           $Category->Create();
           $Category->Display();
       }
    }
    Ответ написан
    Комментировать