Сообщение Toastr не работает в laravel-8

#php #laravel #laravel-blade #laravel-8

#php #laravel #laravel-blade #laravel-8

Вопрос:

Я только что добавил тост при отправке формы, но он не сработал, и я не понимаю проблемы.

 public function create(Request $data)
{

    $data->validate([
        'name'          =>  'required|string|max:255',
        'phone'         =>  'required|unique:users|numeric|digits:11',
        'cnic'          =>  'nullable|unique:users|numeric|digits:13',
        'email'         =>  'required|string|email|max:255|unique:users',
        'designation'   =>  'nullable|string',
        'department'    =>  'nullable|string',
        'password'      =>  'required|string|min:4',
    ]);

    User::create([
        'name'          => $data['name'],
        'phone'         => $data['phone'],
        'cnic'          => $data['cnic'],
        'email'         => $data['email'],
        'role'          => $data['role'],
        'designation'   => $data['designation'],
        'department'    => $data['department'],
        'password'      => Hash::make($data['password']),
    ]);

    return redirect()->route('manage-users')->with('message', 'User created successfully!');
}
  

Это мой контроллер, и я использую этот способ в своем блейде

 @if(Session::has('message'))
    toastr.info("{{ Session::get('message') }}");
@endif
  

и это css:

 @section('vendor-style')
{{-- vendor css files --}}
<link rel="stylesheet" href="{{ asset('vendors/css/extensions/toastr.css') }}">
@endsection

@section('page-style')
{{-- Page Css files --}}
<link rel="stylesheet" href="{{ asset('css/plugins/extensions/toastr.css') }}">
@endsection
  

и файлы js:

 @section('vendor-script')
{{-- vendor files --}}
<script src="{{ asset('vendors/js/extensions/toastr.min.js') }}"></script>
@endsection

@section('page-script')
{{-- Page js files --}}
<script src="{{ asset('js/scripts/extensions/toastr.js') }}"></script>
@endsection
  

и эти файлы работают нормально. Спасибо за вашу помощь!

Комментарии:

1. все еще не работает!

2. Вы загрузили tosstr cdn под своим тегом head?

3. да, все файлы подключены правильно

4. У сеанса есть сообщение? Проверьте это с помощью @if(Session::has('message')) alert("hello"); @endif

5. нет, предупреждение не отображается

Ответ №1:

поскольку это библиотека javascript, вам нужно поместить этот код в <script> тег

 @if(Session::has('message'))
    toastr.info("{{ Session::get('message') }}");
@endif
  

Для

 @if(Session::has('message'))
    <script>
        toastr.info("{{ Session::get('message') }}");
    </script>
@endif
  

если все еще не работает, это означает, что он не запускает ваш код, поэтому вы можете сделать так

 @if(Session::has('message'))
<script>
    $(function(){
            toastr.info("{{ Session::get('message') }}");
        })
</script>
@endif
  

этот код запустит этот код после загрузки страницы

Комментарии:

1. Я действительно ценю вашу помощь, но проблема все та же.

2. Да, оно показывает toastr, когда я пишу этот код в консоли

3. Я пытаюсь это сделать, предупреждение отображается, но toastr нет! <script> var msg = '{{Session::get('message')}}'; var exist = '{{Session::has('message')}}'; if(exist){ toastr.info(msg); // alert(msg); } </script>

4. можете ли вы вставить этот код блейд-файла в свой вопрос?

Ответ №2:

Я создал пакет для высокого стека (Laravel 8 и буду обновлять его). Не стесняйтесь проверить это:

https://github.com/usernotnull/tall-toasts