О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Создать картинку Webp
En
О нас
Разработчикам
En
Laravel functions
Контент
<?php echo app()->version(); // узнать версию laravel dump(['arr']); // debug dd(['arr']); // debug and die // Экземпляр класса, если в конструктор надо передать параметры, то в массиве передать именованные параметры $export = app()->make(Export::class, ['columns' => $columns, 'data' => $data]); // Возвращаем вид и передаём в него переменные return view('welcome', compact('test', 'test2')); // Сохранить вид в переменную $render = view('welcome')->render(); // Возвращает контент, со статусом 200 и определённым заголовком return response('Content...', 200) ->header('Content-Type', 'text/plain'); // Возвращаем вид из файла return view()->file($path_view); // Передать в вид (aside) или виды данные ($leftMenu) из контроллера $leftMenu = [1, 2, 3]; view()->composer('aside', function ($view) use ($leftMenu) { // '*' Для всех видов $view->with(compact('leftMenu')); }); // Отдать на скачивание файл return response()->download('/doc/text.txt', 'file_name.txt'); // Ответа json return response() ->json([ 'name' => 'Ivan', 'email' => 'ivan@mail.ru', ]); abort('404', 'Не найден вид!' ); // Выбросить исключение abort_if(!Auth::user()->isAdmin(), 403); // Выбросить HTTP-исключение, если заданное логическое выражение равно true abort_unless(Auth::user()->isAdmin(), 403); // Если false // Работа с объектами $values = DB::table('table')->get(); $arr = [1, 2, 3]; $valuesObj = collect($arr); // Делаем из массива объект // Пагинация из объекта use Illuminate\Pagination\LengthAwarePaginator as Paginator; $perPage = 20; $currentPage = Paginator::resolveCurrentPage(); $currentPageItems = $valuesObj->slice(($currentPage - 1) * $perPage, $perPage)->all(); $values = new Paginator($currentPageItems, count($valuesObj), $perPage); $values->setPath($request->url()); $values->appends($request->all()); $products = new Paginator($category->products, $category->products->count(), 20); // Пример использования if(!empty($values) && method_exists($values, 'links')) {} // Проверить есть ли пагинация // Разделить объект на части $half = ceil($values->count() / 2); $values1 = $values->slice(0, 5); $values1->all(); // Пропустить 5 элеменотов объекта $values2 = $values->skip(5); $values2->all(); $values->isEmpty(); // Если пусто $values->isNotEmpty(); // Если не пусто $values->unguard(); // Разрешает редактирование всех полей БД $values->fill($data); // Заполнить объект page данными $values->toArray($data); // Объект в массив $values->transform(function ($v, $k) { // Как цикл форич, поменять один элемент из множества $v->title = '...'; return $v; }); // Как in_array(), проверяет есть ли значение в объекте $item->contains('contacts'); $page->contains('slug', 'contacts'); $collection->has('author'); // Использовать для проверки наличия ключа в коллекции $items->push($product); // Добавить элеменент в конец $items->put('product', $product); // Добавить элеменент с ключом $item->prepend('product', $product); // Добавить в начало массива // Удалить из коллекции $collection->forget($key); $newCollection = $collection->reject(function($item) { return $item->id == $id; }); // Клонировать объект $newValues = clone $values; // Первый элемент массива $first = head($arr); // Последний элемент массива $last = last($arr); // Коллекция в цикле $collection->each(function ($item, $key) { // Работаем с элементом }); // Отладка коллекции $collection->dump(); // Строки e('<html>foo</html>'); // Выполнить над строкой htmlspecialchars echo Str::lower('Привет Мир'); // к нижнему регистру echo Str::upper('Привет Мир'); // к верхнему регистру echo \Illuminate\Support\Str::ucfirst('привет мир'); // к первой заглавной букве Str::camel('more_text'); // в camelCase Str::studly('foo_bar'); // в StudlyCase Str::snake('fooBar'); // Преобразовать строку в snake_case (стиль именования Си с подчёркиваниями вместо пробелов) - foo_bar Str::kebab('fooBar'); // Преобразовать строку в snake-case (стиль именования Си с подчёркиваниями вместо пробелов) - foo-bar Str::title('хороший заголовок'); // В стиль заголовка Title Case Хороший Заголовок Str::ends_with('This is my name', 'name'); // Определить, заканчивается ли строка переданной подстрокой - true Str::starts_with('This is my name', 'This'); // Определить, начинается ли строка с переданной подстроки - true Str::contains('This is my name', 'my'); // Определить, содержит ли строка переданную подстроку, можно передать массив ['my', 'foo'] - true Str::slug('Laravel 5 Framework', '-'); // Сгенерировать подходящую для URL «заготовку» из переданной строки laravel-5-framework Str::limit('The PHP framework for web artisans.', 7); // Ограничить число символов в строке, в конце добавляет... длина Str::str_random(40); // Создать последовательность случайных символов заданной длины $class = class_basename('Foo\Bar\Baz'); // Baz $one = Str::singular('models'); // model Приводит к единственному числу $many = Str::plural('model'); // models Приводит к множественному числу $matches = Str::is('foo*', 'foobar'); // true Строка содержит // Paths base_path(); // К корню app_path(); // К папке app config_path(); // К папке config public_path(); // К папке public storage_path(); // К папке storage resource_path(); // К папке resource // Url url()->current(); // Текущий адрес url()->full(); // Полный текущий адрес use Illuminate\Support\Facades\URL; URL::current(); // Текущий адрес таким способом url()->previous(); // Страница, с которой перешли // Http Illuminate\Support\Facades\Http::get($url)->ok(); // Проверить URL c другого сайта, с ответом 200 action('HomeController@getIndex'); // Имя класса контроллера в пространстве имён App\Http\Controllers action('UserController@profile', ['id' => 1]); // Если метод принимает параметры маршрута, вы можете передать их вторым аргументом // Существует ли маршрут if (\Illuminate\Support\Facades\Route::has('login')) {} route('routeName'); route('routeName', ['id' => 1]); echo secure_url('user/profile'); // Полный HTTPS URL по заданному пути echo secure_url('user/profile', [1]); echo url('user/profile'); // HTML-ссылка на указанный полный путь echo url('user/profile', [1]); $url = asset('img/photo.jpg'); // URL для папки public echo secure_asset('foo/bar.zip', 'Title', $attributes = []); // Функция редиректа redirect(); redirect()->to('https://www.google.com/'); redirect()->route('home'); // На роут из файла /routes/web.php redirect()->route('page', ['alias' => 'contacts']); // На роут из файла /routes/web.php с параметром redirect()->action('MainController@index') ->withInput() // Записать в сессию все параметры из post //->withInput( $request->only('email', 'remember') ) // Данные только те, которые укажем в параметре ->with( 'message', 'Материал добавлен.' ); // Записать в сессию определённые параметры redirect()->intended('/admin'); // Редирект на ранее запрашиваемую страницу пользователем и в параметре передать страницу по-умолчанию redirect()->back(); // Редирект назад // return new \Illuminate\Http\RedirectResponse('/page'); // Возможно так // return \Illuminate\Http\RedirectResponse::create('/page'); // Возможно так // Config echo config('app.locale'); echo env('APP_ENV'); // Изменить, добавить данные в config \Illuminate\Support\Facades\Config::set('app.locale', 'ru'); echo \Illuminate\Support\Facades\Config::get('app.locale'); \Illuminate\Support\Facades\Config::set('test', [ 'a' => 'aaa', 'b' => 'bbb', ]); dd(\Illuminate\Support\Facades\Config::get('test')); dd($_ENV); $value = config('app.timezone'); $value = config('app.timezone', 'default'); config(['app.debug' => true]); // Можно изменить конфиг env('APP_ENV', 'default'); // Из файла .env // LOG Записать в логи, наследовать use Log; // В файле .env LOG_CHANNEL=stack можно поставить daily, каждый день и поменять кол-во дней в /config/logging.php в 'daily' => ['days' => 90] Log::emergency('Сообщение для записи в логи'); Log::alert(); Log::critical(); Log::error(); Log::warning(); Log::notice(); // Предупреждения Log::info(); // Некая информация Log::debug(); // LOCALE // Наследовать use Lang; __('auth.failed', ['name' => 'Test']); // Сделать перевод из папки с языком /resources/lang/название_языка из файла auth с ключом failed, 2-ой - передать динамическое значение, которое в переводах указано :name ('failed' => 'Hello :name') будет заменено на передаваемое trans_choice('auth.apple', 2); // К примеру в переводах 'apple' => 'яблоко|яблока|яблок' и в зависимости от кол-ва 2-ой параметр laravel сам подставить нужное слово (можно так 'apples' => '{0}Вариант1[1,19]Вариант2[20,Inf]Вариант3' если 0 - Вариант1, если от 1 до 19 - Вариант2, если от 20 до бесконечности - Вариант3) Lang::has('auth.apple'); // Проверит есть ли перевод echo trans('validation.required'); // Перевести переданную языковую строку с помощью ваших языковых файлов trans_choice('foo.bar', $count); // Перевести переданную языковую строку с изменениями // File use Illuminate\Support\Facades\File; File::exists('file_path.php'); // Существует ли файл File::get('file_path.php'); // Получить содержимое файла File::put('file_path.php', 'Text...'); // Записать, создать в файл File::makeDirectory('pathDirectoryName'); // Создать папку File::ensureDirectoryExists('pathDirectoryName'); // Создать папку если её нет File::replace('file_path.php', 'Text...'); // Перезаписать файл File::prepend('file_path.php', 'Text...'); // Записать в начало файла File::append('file_path.php', 'Text...'); // Записать в конец файла File::delete('file_path.php'); // Удалить файл File::delete(['file_path.php', 'file_path2.php']); // Удалить множество файлов File::url('file_path.php'); // URL файла File::size('file_path.php'); // Размер файла File::lastModified('file_path.php'); // Время последней модификащии файла File::copy('file_path.php', 'new_file_path.php'); // Скопировать файл File::move('file_path.php', 'new_file_path.php'); // Переместить файл File::files('directory'); // Все файлы из папки File::directories('directory'); // Все папки File::allFiles('directory'); // Все файлы папки и её подпапок $path = base_path('routes'); $files = \Illuminate\Support\Facades\File::allFiles($path); if ($files) { foreach ($files as $key => $file) { dump($file->getBasename()); // Имя файла dump($file->getRealPath()); // Полный путь dump($file->isFile()); // Проверка на файл dump($file->isDir()); // Проверка на папку dump($file->getContents()); // Получить содержимое файла dump(pathinfo($file)); // Данные файла php функция pathinfo() } } // Storage, все методы из File работают здесь use Illuminate\Support\Facades\Storage; // Разница с File, что Storage работает с определённым диском и его папками и разделами $disk = Storage::disk($diskName); // Название диска из /config/filesystems.php 'disks' // Если не задать диск, то будет по-умолчанию из /config/filesystems.php 'default'. В этом же файле в 'disks' можно добавить свой диск. $disk->get('file_path.php'); // Получить содержимое файла app(Illuminate\Filesystem\Filesystem::class)->delete(public_path('uploads/example.png')); // Удалить файл // Отдать файл на скачивание, скачать файл через браузер return Storage::download('file.jpg'); // Session // php artisan session:table Если использовать таблицу sessions для сессий, также в файле /.env прописать SESSION_DRIVER=database // можно так $request->session()->all(); session()->all(); // Достать всё из сессии session()->put('key', 'value'); // Сохранить в сессию, если ключ key.first, то будет массив с вложенным ключом first session()->push('key.second', 'value2'); // Добавить в сессию в массив session()->get('key', 'default'); // Достать из сессии значение key, если его нет, то записать со значением default необязательный параметр session()->has('key'); // Если ли в сессии ключ key session()->exists('key'); // Существует ли в сессии ключ key session()->flash('key', 'value'); // Временная сессия на один запрос session()->reflash(); // Сохранить временные данные в сессию session()->pull('key'); // Достать значение key и удалить из сессии session()->flush(); // Удалить всю сессию session()->forget('key'); // Удалить из сессии ключ key session()->flash('status', 'Task was successful!'); // Данные храняться до одного http запроса /* Использовать любые методы выше описанные - Работать с сессиями использовать Request $request $request->session() - Фасад сессий, прописать use Session; Session::all() - Использовать хелпер для чтения session('key', 'default'); В видах {{ dump(Session::all()) }} */ // Cookies (если не указать время, то запишется на 5 лет) return response()->view('page.index')->cookie('test', 'testing', 604800); // Создать куку на неделю return redirect()->back()->withCookie('test', 'testing', 604800); // Создать куку на неделю c редиректом обратно Cookie::queue('name', 'value'); // Ставим на очередь создание куки cookie()->queue(cookie('test', 'testing', 30)); // Создать куку $cookie = request()->cookie('test'); // Получить куку // Cache cache()->has('key'); // Существует ли кэш cache()->forever('key', $values); // Записать в бесконечный кэш cache()->get('key'); // Получить кэш можно Cache::get('key'); cache()->pull('key', $values); // Получить и удалить cache()->put('key', $values); // Сохранить кэш cache()->put('key', $values, $seconds); // Сохранить кэш на секунд cache()->add('key', $values, $seconds); // Добавить в кэш на время, по-умолчанию 60 минут cache()->forget('key'); // Удалить конкретный кэш cache()->flush(); // Удалить все кэши // Сохранение кэша в Memcached, в файле .env поменять CACHE_DRIVER=memcached (на хостинге должен быть включён memcached) // Получить из кэша и сохранить $values = cache()->rememberForever('users', function () { return DB::table('users')->get(); }); // Carbon - класс для работы со временем //https://carbon.nesbot.com/docs/ use Illuminate\Support\Carbon; // Пространство имён $dt = Carbon::parse($date); // Создать объект из даты $updated_at = Carbon::now(); // Сейчас /** * * @return string * * Возвращает время в формате Timestamp: 2020-12-10 00:00:00, принимает дату сторокой, практически в любом формате. */ public static function toTimestamp($date) { if ($date) { return Carbon::create($date)->toDateTimeString(); } return null; } /** * * @return string * * Возвращает время в формате: 10.12.2020 или любом другом, принимает дату в 2020-12-10 00:00:00 * $format - возращаемый формат, по-умолчанию 10.12.2020. */ public static function timestampTo($timestamp, $format = 'd.m.Y') { if ($timestamp && $timestamp != '0000-00-00 00:00:00' && $format) { $dt = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp); return $dt->format($format); // $dt->translatedFormat('d F Y, l'); // С переводом } return null; } now(); // Объект на сейчас Carbon::createFromFormat('d-m-Y', $date)->startOfDay(); // На начало суток или на конец суток ->endOfDay() // Разница в днях $diffInDays = $contract->create_at->diffInDays(Carbon::now()); $date1 = Carbon::createFromFormat('m/d/Y H:i:s', '12/01/2020 10:20:00'); $date2 = Carbon::createFromFormat('m/d/Y H:i:s', '12/01/2020 10:20:00'); // Сравнить даты, возвращает true, если равно $res = $date1->eq($date2); // Если не равно $res = $date1->ne($date2); // Если больше, чем $res = $date1->gt($date2); // Если больше или равно $res = $date1->gte($date2); // Если меньше, чем $res = $date1->lt($date2); // Если меньше или равно $res = $date1->lte($date2);
Список
Loading...