Задать вопрос
Ответы пользователя по тегу Laravel
  • Как поменять префикс url при смене языка в laravel?

    Gavr_Gavr
    @Gavr_Gavr Автор вопроса
    В общем благодаря пакету mcamara/laravel-localization у меня получилось реализовать эту идею. Единственное что я все таки не смог до конца разобраться в сути этого пакета, поэтому думаю что моя реализация написана на коленке и не совсем соответствует его логике - но работает )).

    Короче - качаем пакет, все по инструкции как написано, настраиваем нужные языки в файле config/laravellocalization.php

    В роутах я написал так:

    <?php
    
    use Illuminate\Support\Facades\App;
    use Illuminate\Support\Facades\Route;
    
    /*
    |--------------------------------------------------------------------------
    | Web Routes
    |--------------------------------------------------------------------------
    |
    | Here is where you can register web routes for your application. These
    | routes are loaded by the RouteServiceProvider within a group which
    | contains the "web" middleware group. Now create something great!
    |
    */
    Route::get('/locale/{locale}',  'App\Http\Controllers\LanguagesController@changeLocale')->name('locale');
    
    Route::group(
       ['prefix' => LaravelLocalization::setLocale()],
       function(){
    
       }
    );
    
    Route::get('/', function () { return view('home');})->name('index');
    Route::get('/es', function () {App::setlocale('es'); return view('home');})->name('indexES');
    Route::get('/ru', function () {App::setlocale('ru'); return view('home');})->name('indexRU');
    
    Route::get('/home', function () {return view('home');})->name('home');
    Route::get('/es/home', function () {App::setlocale('es'); return view('home');})->name('homeES');
    Route::get('/ru/home', function () {App::setlocale('ru'); return view('home');})->name('homeRU');

    По непонятным для меня причинам фасад App::setlocale() не передавал инфо, и был недоступен в группе этих роутов, поэтому мне пришлось их вынести (я думаю что это не правильно, но другого решения я не нашел). В инструкции написано что роуты которые переводятся надо указывать в группе, но как передать им там язык, я так и не понял (. Если кто то знает, напишите пожалуйста.

    Ссылка для переключения языков:
    href="{{ LaravelLocalization::getLocalizedURL(__('main.change_lang_link')) }}"

    А вот все ссылки на другие страницы выглядят так:
    href="{{LaravelLocalization::getLocalizedURL(__('main.set_lang'), 'home')}}"


    Полет нормальный, страницы загружаются в нужных языках и возвращают 404 в случае установки неправильного языка (например если в ручную написать /br/home',)
    Ответ написан
    Комментировать
  • Как в Laravel отправить файл на почту?

    Gavr_Gavr
    @Gavr_Gavr Автор вопроса
    Получилось так решить:

    Поменял метод
    attachData($upload_folder, $fileName);
    На метод:
    attach($upload_folder)

    В $upload_folder написал так:
    $upload_folder = 'C:\Program Files\Ampps\www\laravel\storage\app\public\mail_fils\\' . $fileName;
    Ответ написан
    Комментировать