Как я получу заголовок текущей страницы в скрытом поле, когда я отправлю форму в laravel - PullRequest
0 голосов
/ 02 мая 2019

У меня есть форма, в которой есть имя, адрес электронной почты и телефон.Но я хочу, чтобы заголовок текущей страницы или URL-адрес, когда пользователь отправляет форму, потому что я хочу отслеживать страницу пользователя.Пожалуйста, дайте мне знать, как я могу это сделать.Это мой код формы.

<form class="callus" method="post" action="{{url('/sendmailuser')}}">
    @csrf
    <div class="col-md-3 col-sm-6">
        <div class="single-query form-group">
            <input type="hidden" name="product_title" value="{{ request('request') }}" class="keyword-input" placeholder="Enter Your Name" required="">
        </div>
    </div>
    <div class="col-md-3 col-sm-6">
        <div class="single-query form-group">
            <input type="text" name="user_name" class="keyword-input" placeholder="Enter Your Name" required="">
        </div>
    </div>
    <div class="col-md-3 col-sm-6">
        <div class="single-query form-group">
            <input type="text" name="user_email" class="keyword-input" placeholder="Enter Your Email" required="">
        </div>
    </div>
    <div class="col-md-3 col-sm-6">
        <div class="single-query form-group">
            <input type="text" name="user_phone" class="keyword-input" placeholder="Enter Your Phone" required="Field is required">
        </div>
    </div>
    <div class="col-md-3 col-sm-6">
        <div class="single-query form-group">
        <input type="submit" value="submit now" class="btn-blue">
        </div>
    </div>
</form>

Это мой код отправки электронной почты ...

public function sendyourmail(Request $r)
{
    $validator = Validator::make($r->all(), [
        'user_name' => 'required',
        'user_email' =>'required',
        'user_phone' =>'required',
        'user_desc' =>'required', 
    ]);
    if ($validator->fails()) {
        return redirect()->back()->withErrors($validator);
    }

    $data=[
        'user_email' => $r->user_email,
        'user_name' => $r->user_name,
        'user_phone' => $r->user_phone,
        'user_desc' => $r->user_desc,
    ];
    Mail::send('mail', $data, function($message) use($data) {
        $message->from($data['user_email'], 'Email Form Sumit');
        $message->to('sumit@gmail.com')->cc('sumit@sumit.com');
        $message->subject($data['user_desc']);
    });
    return redirect()->back()->with('message','Your Mail Has Been sent Successfully, We Will Get Back to You Shortly.');
}

1 Ответ

0 голосов
/ 02 мая 2019

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

public function sendyourmailform()
{
    $title = 'Sample Page Title';
    return view('email_template.blade.php', compact('title'));
}

Поскольку переменная title находится вне шаблона, вы можете получить к ней доступ внутри шаблона, дважды отобразив его внутри заголовка section

@section('title')
    {{ $title }}
@endsection

Внутри страницы макета, которая расширяется шаблоном, который отображает форму, вы должны определить раздел с именем title следующим образом

<head>
    <title>
        @section('title')
        @endsection
    <title>
</head>

И у вас есть доступ к переменной title внутри части шаблона, в которой отображается связанная форма.

<form class="callus" method="post" action="{{url('/sendmailuser')}}">
    @csrf
    <div>
        <input type="hidden" name="page_title" value="{{ $title }}">
    </div>
    <!-- ... -->
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...