Laravel: Best practice for inline PHP in a blade file
所以我有以下刀片文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | @extends('layouts.master') @section('title') {{ trans('tc.signUpConfirmTitle')}} @endsection @section('body') <?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!"; } ?> @endsection |
如您所见,我在
我猜这是因为我需要做一些Laravel导入吗? 但这是轻量级的吗?
我可以问一下这种情况下的最佳实践是什么吗? 我对Laravel还是很陌生,所以请多多包涵。 像这样使用原始PHP破坏了整个目的吗?
到目前为止,我一直在使用Blade模板散布简单的变量和参数。 但是我现在想做些复杂的事情,但遇到了麻烦。
像这样使用原始PHP破坏了整个目的吗?
没错! 制作MVC的目的是为了在您的情况下将不同类型的作业"模型,视图和控制器"的不同层组合在一起,从而将控制器的作业组合到视图中,从而减少了控制器的作用。
控制器中的以下代码将执行您想做的事情。 假设您有一个名为确认的函数,该函数负责所有验证并相应地返回响应。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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); } |
您不应该在用户表中添加确认键,但是您可以在数据库表中的任何位置插入任何内容,但是我的建议是您应该为此创建一个单独的表。