Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel:刀片文件中内联PHP的最佳实践_Php_Laravel_Laravel 5_Blade - Fatal编程技术网

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

Laravel:刀片文件中内联PHP的最佳实践,php,laravel,laravel-5,blade,Php,Laravel,Laravel 5,Blade,因此,我有以下刀片文件: confirmEmail.blade.php 如您所见,我在标记之间有一些原始PHP。问题是User::where。。。FatalErrorException失败-找不到类“User” 我想这是因为我需要做一些Laravel导入?但这样做是不是很轻 我能问一下,在我的情况下,最好的做法是什么吗?我对拉威尔还是很陌生,所以请容忍我。像这样使用原始PHP会破坏整个目的吗 到目前为止,我一直在使用刀片模板来输出简单的变量和参数。但是我现在想做一些更复杂的事情,我遇到了麻烦。像

因此,我有以下刀片文件:

confirmEmail.blade.php

如您所见,我在标记之间有一些原始PHP。问题是User::where。。。FatalErrorException失败-找不到类“User”

我想这是因为我需要做一些Laravel导入?但这样做是不是很轻

我能问一下,在我的情况下,最好的做法是什么吗?我对拉威尔还是很陌生,所以请容忍我。像这样使用原始PHP会破坏整个目的吗


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

像这样使用原始PHP会破坏整个目的吗? 确切地MVC是为了使不同类型的作业模型、视图和控制器有不同的层,在您的情况下,您将控制器的作业合并到视图中,因此减少了控制器的角色

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

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);
}

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

这样使用原始PHP是否会破坏整个目的? 确切地MVC是为了使不同类型的作业模型、视图和控制器有不同的层,在您的情况下,您将控制器的作业合并到视图中,因此减少了控制器的角色

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

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);
}

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

各位,我想我已经解决了。。。如果我使用\App\User::where'email'、'='、$email->first,它工作得很好…为什么要在刀片文件中执行所有这些逻辑?将php放在模板上没有什么错,但您使用的是$\u GET directly。。不是拉威尔。在一个视图中,这是太多的语法了:嗨@KhanShahrukh,你能再评论一下吗。我想我应该从我的控制器类中传入一个简单的变量,对吗?嗨,伙计们,我想我知道了。。。如果我使用\App\User::where'email'、'='、$email->first,它工作得很好…为什么要在刀片文件中执行所有这些逻辑?将php放在模板上没有什么错,但您使用的是$\u GET directly。。不是拉威尔。在一个视图中,这是太多的语法了:嗨@KhanShahrukh,你能再评论一下吗。我想我应该从我的控制器类传入一个简单的变量,对吗?您好。非常有用的评论。我已经学会了MVC,仍然习惯于拉威尔,并试图强迫自己重新学习我习惯的做事方式。我想我老了…你看过杰弗里·韦的视频吗?如果不在Google上搜索laracasts hey@Eamorr很抱歉有不相关的评论,但你的MVC学习进展如何?你好。非常有用的评论。我已经学会了MVC,仍然习惯于拉威尔,并试图强迫自己重新学习我习惯的做事方式。我想我老了…你看过杰弗里·韦的视频吗?如果不在Google上搜索laracasts嘿@Eamorr很抱歉有不相关的评论,但你的MVC学习进展如何?