Как передать значение из текстового поля ввода на другую страницу в Laravel - PullRequest
1 голос
/ 13 февраля 2020

Контроллер индекса показан ниже

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class IndexController extends Controller
{
    public function index()
    {
        return view('welcome');
    }

    public function about()
    {
        return view('about');
    }

  public function contact()
  {
    return view('contact');
  }

  public function thanks(Request $request)
  {
    $request->validate(['firstname' => ['required', 'alpha_num']]);
    return view('thanks');
  }


}

contact.blade. php ниже

@extends('welcome')
@section('content')
          <div>
            <h2>Contact Page</h2>
            <form method="post" action="{{route("thanks")}}">
              @csrf<input type="text" name="firstname"/>
              <input type="submit"/>
            </form>
            @if ($errors->any())
            <div class="alert alert-danger">
              <ul>
                @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
                    @endforeach
              </ul>
            </div>
                @endif
                  </div>
  @endsection

Thanks.blade. php

@extends('welcome')
@section('content')
<div>
  <h2>Thanks</h2>Thank you {{ $firstname }}
</div>
@endsection

welcome.blade. php

  <div class="flex-center position-ref full-height">
            <div class="content">
                <div class="title m-b-md">
                    app
                </div>

                <div class="links">
                    <a href="{{ route('about')  }}">About</a>
                    <a href="{{ route('contact')  }}">contact</a>
                </div>
                <h1>{{$firstname}}</h1>
                <div>
                    @yield('content')
                </div>

            </div>
        </div>

web. php

<?php



Route::get('/', 'IndexController@index');

Route::get('/about', 'IndexController@about')->name('about');

Route::get('/contact','IndexController@contact')->name('contact');
Route::post('/contact','IndexController@thanks')->name('thanks');

Когда я нажимаю на контакт в welcome.blade. php он берет меня на страницу контактов где текстовое поле присутствует. Введенное значение должно появиться в thankyou.blade. php. Мне нужно, чтобы значение, введенное в текстовое поле, отображалось в thanks.blade. php при нажатии кнопки "Отправить". Заранее спасибо

1 Ответ

1 голос
/ 13 февраля 2020

Данные должны быть явно переданы в представление. По понятным причинам, он не доступен в глобальном масштабе как переменная.

Например,

return view('thanks', ['firstname' => 'Your First Name']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...