【问题标题】:How i will get current page title in hidden field, when i submit the form in laravel当我在 laravel 中提交表单时,如何在隐藏字段中获取当前页面标题
【发布时间】:2019-09-20 15:21:44
【问题描述】:

我有一个包含姓名、电子邮件和电话的表格。但是当用户提交表单时我想要当前页面标题或 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.');
}

【问题讨论】:

  • 隐藏输入字段的工作方式与任何其他字段一样。您可以通过product_title访问它
  • 这是我的查看页面,但仍然无法在邮件中获取标题
    产品名称: {{$product_title}}
    用户名:{{$user_name}}
    用户邮件:{{$user_email}}
    用户联系人:{{$user_phone}}
    用户留言: {!! $user_desc !!}

标签: laravel email laravel-5 eloquent gmail


【解决方案1】:

您应该在控制器中定义渲染页面的标题,并在您指定应该渲染哪个模板时将其作为参数传递给视图。

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

因为标题变量已传递给模板,您可以通过在标题section 内渲染两次来在模板内访问它

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

在由模板扩展的布局页面内,该模板呈现您应该定义名为 title 的部分,如下所示

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

并且您可以访问显示相关表单的模板部分中的标题变量。

<form class="callus" method="post" action="{{url('/sendmailuser')}}">
    @csrf
    <div>
        <input type="hidden" name="page_title" value="{{ $title }}">
    </div>
    <!-- ... -->
</form>

【讨论】:

  • 未定义变量:product_title(查看:/home/amit/Desktop/project/resources/views/product-single.blade.php)
猜你喜欢
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 2017-11-05
相关资源
最近更新 更多