Laravel:刀片文件中内联 PHP 的最佳实践

Eam*_*orr 1 php laravel blade laravel-5

所以我有以下刀片文件:

confirmEmail.blade.php

@extends('layouts.master')

@section('title')
{{ trans('tc.signUpConfirmTitle')}}
@endsection





@section('body')


<div class="container">
  <div class="row">
    <div class="col-lg-4">
      &nbsp;
    </div>

    <div class="col-lg-4">

      <?php
      echo $_GET['emailToken'];
      $emailToken = isset($_GET['emailToken']) ? $_GET['emailToken'] : "";
      $email = isset($_GET['email']) ? $_GET['email'] : "";

      //database lookup:
      $user = User::where('email','=',$email)->first();   //this fails...

      if($user->emailToken == $emailToken){
        echo "OK!";
      }
      ?>




      <br><br><br><br><br><br>

    </div>

    <div class="col-lg-4">
      &nbsp;
    </div>

  </div>
</div>

@endsection
Run Code Online (Sandbox Code Playgroud)

如您所见,我在<?php ?>标签之间有一些原始的 PHP 。问题是User::where(...)失败(“FatalErrorException” - 找不到“用户”类)。

我想这是因为我需要做一些 Laravel 导入?但这样做是轻量级的吗?

我可以问一下,在我的情况下,最佳做法是什么?我对 Laravel 还是很陌生,所以请耐心等待。像这样使用原始 PHP 是否违背了整个目的?

到目前为止,我一直在使用 Blade 模板来很好地吐出简单的变量和参数。但我现在想做一些更复杂的事情,我遇到了麻烦。

Kha*_*ukh 5

像这样使用原始 PHP 是否违背了整个目的?确切地 !制作 MVC 以便在您的情况下将有不同类型的不同类型的作业“模型、视图和控制器”的不同层,您将控制器的工作组合到一个视图中,从而减少了控制器的作用。

控制器中的以下代码将执行您要执行的操作。假设您有一个名为确认的函数,它负责所有验证并相应地返回响应。

public function confirmation(Request $request)
{
   $status = 'Failure';
   $emailToken = $request->emailToken;
   $email = $request->email;
   if(isset($email))
     {
       $user = User::where('email','=',$email)->first();
        //I do not know why this fails on your side check if you have that email in your database
       if($user->emailToken == $emailToken)
        {
          $status = 'Success';
        }
     }
          return view('confirmEmail')->with('message', $status);
}
Run Code Online (Sandbox Code Playgroud)

您不应该将确认键添加到用户表中,但是它是您的数据库表,您可以在任何地方插入任何内容,但我的建议是您应该为此创建一个单独的表。