Php laravel blade php 中的代码

Php code in laravel blade php

我正在尝试在我的 laravel 登录表单中添加 <?php echo $_GET["tname"] ?> 以将其用作此 https://example.com/?tname=test 以获得它的 auto-filled 值,但是每当我尝试添加它说

Whoops, looks like something went wrong.

谁能告诉我如何使用其中的代码。
这是我的 laravel 登录页面代码:

<form class="" role="form" method="POST" action="{{ url('/login') }}">
    <div class="panel panel-body">
        <h4 class="text-semibold mt-0">{{ trans('messages.login') }}</h4>

        <div class="form-group has-feedback has-feedback-left{{ $errors->has('email') ? ' has-error' : '' }}">
            <input id="email" type="email" class="form-control" name="email" placeholder="{{ trans("messages.email") }}"
                 value="<?php echo $_GET["tname"]; ?>"
            >

而不是:

<?php echo $_GET["tname"]; ?>

只需使用:

{{ request()->input('tname') }}

你不应该在 Blade 中使用 PHP 代码,即使你可以使用 @php ... @endphp 指令

您可以只使用 request() 助手来获取 URI 参数:

value="{{ request('tname') }}"

如果你想明确地使用 PHP 代码块,你可以在 blade 标签中使用它 @php /一些常规的 PHP 代码/ @endphp 在您的情况下可能是:

<form class="" role="form" method="POST" action="{{ url('/login') }}">
    <div class="panel panel-body">
        <h4 class="text-semibold mt-0">{{ trans('messages.login') }}</h4>

        @php
            $a = 5;
            $b = ['a', 'b', 'c'];
            $c = isset($_GET['tname']) ? $_GET['tname'] : null;
        @endphp
        <div class="form-group has-feedback has-feedback-left{{ $errors->has('email') ? ' has-error' : '' }}">
            <input id="email" type="email" class="form-control" name="email" placeholder="{{ trans("messages.email") }}"
             value="{{ $c }}">

当然,在没有 PHP 输入卫生的情况下使用 GET 变量不会很聪明,这就是为什么 @MarcinNabiałek 和 @AlexeyMazenin 的答案是正确的。我在这里只是指出您将如何使用 blade 中关于问题标题的 PHP 块代码。