Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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 - Fatal编程技术网

如何在Laravel刀片模板中编写PHP代码?

如何在Laravel刀片模板中编写PHP代码?,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在为一个在Laravel中完成的站点编写代码,我知道不建议在Blade模板中编写PHP代码,但在这个例子中,我的可用时间有限 @php if($_POST["submit"]){ $name = $_POST["name"]; $email = $_POST["email"]; $missingName = "<p><strong>Please eneter your name.</strong>&l

我正在为一个在Laravel中完成的站点编写代码,我知道不建议在Blade模板中编写PHP代码,但在这个例子中,我的可用时间有限

@php
   if($_POST["submit"]){
        $name = $_POST["name"];
        $email = $_POST["email"];

        $missingName = "<p><strong>Please eneter your name.</strong></p>";
        $invalidEmail = "<p><strong>Invalid Email.</strong></p>";


        if($name){
            $name = filter_var($name, FILTER_SANITIZE_STRING);
        }else{

            $errors .= $missingName;
        }


          $email = filter_var($email, FILTER_SANITIZE_EMAIL);
          $email = filter_var($email, FILTER_VALIDATE_EMAIL);
         if(filter_var($email, FILTER_VALIDATE_EMAIL)){

          }else{
              $errors .= $invalidEmail;
          }
        if($errors){
            $resultMessage = '<div  class="alert alert-danger">' . $errors .'</div>';
        }else{

            $to = "leads@relevant.systems";
            $subject = "DijiJock update request form.";
            $message = "<html>
                         <body>
                         <h2 style='color:black'>DijiJock update request form.</h2>
                <p style='color:green'>Name: $name</p>
                <p style='color:green'>Email: $email</p>
                <p style='color:black'>$name has requested DijiJock updates, please forward all updates to $email.</p>
                         </body>
                       </html>";
            $headers = "Content-type: text/html";


            if(mail($to, $subject, $message, $headers)){
                $resultMessage = '<div  class="alert alert-success">Thank you for the meesage!</div>';

            }else{
                $resultMessage = '<div  class="alert alert-warning">Email not sent! Please try again later.</div>';
            }
        }
        echo $resultMessage;
    }             
@endphp
@php
如果($\发布[“提交”]){
$name=$_POST[“name”];
$email=$_POST[“email”];
$missingName=“请输入您的姓名。”;
$invalidEmail=“无效电子邮件。”;
如果($name){
$name=filter\u var($name,filter\u SANITIZE\u STRING);
}否则{
$errors.=$missingName;
}
$email=filter\u var($email,filter\u SANITIZE\u email);
$email=filter\u var($email,filter\u VALIDATE\u email);
if(过滤变量($email,过滤验证电子邮件)){
}否则{
$errors.=$invalidEmail;
}
如果($errors){
$resultMessage='.$errors';
}否则{
$to=”leads@relevant.systems";
$subject=“DijiJock更新请求表。”;
$message=”
DijiJock更新请求表。

名称:$Name

电子邮件:$Email

$name已请求DijiJock更新,请将所有更新转发至$email

"; $headers=“内容类型:文本/html”; if(邮件($to、$subject、$message、$headers)){ $resultMessage='谢谢您的会见!'; }否则{ $resultMessage='未发送电子邮件!请稍后再试'; } } echo$resultMessage; } @endphp

中间的PHP代码不工作?

使用控制器和刀片视图方法。

Mail::send('emails.YOUR_BLADE_FILE', ['user' => $user, 'request' => $request], function ($message) use ($user, $request) {
     $message->to('EMAIL_ACCOUNT', 'EMAIL_USER_NAME');         
     $message->subject('EMAIL SUBJECT');
});
尝试使用这个函数。这很简单,而且非常干净。

(这里更好地在控制器中实现操作,您可以创建一个帮助器类,通过服务提供者绑定它,然后使用它)

在某些情况下,将PHP代码嵌入视图是很有用的。您可以使用Blade@php指令在模板中执行一块普通php:

@php
    //
@endphp
这与:

<?php

?>

如果您需要共享全局变量,最好的方法是使用视图外观的方法共享(),并在服务提供商上执行该操作。

用例示例:布局的嵌套结构=>使用短名称保存全局变量,该名称指向更大的树遍历名称(+当我们更改结构时易于维护,只需执行一次)。前任:
namespace-App\Providers;
使用照明\支持\立面\视图;
类ViewGlobaleVarServiceProvider扩展了ServiceProvider
{
/**
*引导任何应用程序服务。
*
*@返回无效
*/
公共函数boot()

{/\/\/\/\/\/\/\/\/\/\/\/\/\/\/因此,我似乎有正确的标记,但我收到错误“未定义索引:提交”如果(isset($\u POST[“提交”]),请尝试此操作。您可能在尚未提交的页面加载中遇到未定义。您应该将此代码放置在控制器中,而不是.blade文件中…更改
如果($\u POST[“提交”])
如果($\u服务器['REQUEST\u METHOD']=='POST')
将修复此问题,但您应该在控制器中包含此类代码,而不是在视图中。
namespace App\Providers;

use Illuminate\Support\Facades\View;

class ViewGlobaleVarServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    { // \/\/\/\/\/\/\/\/  <====== !
        View::share('sysAdmDashPgContainerHeader', 'system.admin.dashboard.partials.pageContainer.partials._header');
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}