2015-12-02 1 views
1

Я хотел бы создать класс в Laravel и сделать его доступным в Blade. Подробности ниже:Как добавить класс в Laravel, чтобы он был доступен в Blade?

class myHelper { 

    function clear_alias($string) 
    { 
     $string = @iconv('UTF-8', 'ASCII//TRANSLIT', $string); 
     $string = strtolower($string); 
     $string = strtr($string, array('&' => '_', '"' => '-', '&'.'#039;' => '-', '<' => '-', '>' => '-', '\'' => '')); 
     $string = preg_replace('/^[^a-z0-9]{0,}(.*?)[^a-z0-9]{0,}$/si', '\\1', $string); 
     $string = preg_replace('/[^a-z0-9\-]/', '-', $string); 
     $string = preg_replace('/[\-]{2,}/', '-', $string); 
     return $string; 
    } 

    function cut_text($string,$char=100) 
    { 
     $string = strip_tags($string); 

     if (strlen($string) > $char) 
     { 
      $string=substr($string, 0, $char); 
      for ($a=strlen($string)-1;$a>=0;$a--) 
      { 
       if ($string[$a]==" ") 
       { 
        $string=substr($string, 0, $a)."..."; 
        break; 
       }; 
      }; 
     }; 
     return $string; 
    } 
} 

Любая помощь очень ценится

+0

вам необходимо либо создать статический класс, или добавить класс к контейнер и вызов с помощью приложения() –

ответ

2

Просто поместите свой класс в автозагрузку части в вашем composer.json:

"autoload": { 
    "classmap": [ 
     "database", 
     "app/Helpers/MyHelper.php" 

Затем запустите composer dumpautoload

+0

, кроме того, если класс статичен, вы можете просто позвонить прямо с клинка, если вам не нужно добавлять в контейнер и звонить с app ('MyClass) -> someMethod() –

+0

отлично, спасибо за ответ :) – Pionas

+0

Здравствуйте @Pionas, если это помогло, отметьте ответ как принятый, чтобы закрыть вопрос. –

-2

Я думаю, вы должны разместить свой класс в /app/MyClass.php, а затем использовать его в контроллере:

использование \ App \ MyClass;

Сердечные приветы

+0

не совсем то, что вы хотите сделать со вспомогательным классом – mikus