[英]Why can't I execute some trivial PHP code in my Laravel project?
我正在努力调试我正在构建的 Laravel 9 应用程序,以便更好地了解我的 controller 的 edit() 和 update() 方法是如何工作的,但我找不到任何描述如何在 VS Code 中调用 XDebug 的内容一个 Laravel 项目,所以我正在尝试通过一个视频来展示如何在 VS Code 中执行普通的 PHP 代码,但这也不起作用。
事实上,我什至无法在我的 web 浏览器中正确显示带有普通 PHP 的普通网页。 我不知道我是否只是度过了一个愚蠢的一天,或者我是否需要采取一些步骤让我的浏览器正确解释 PHP,而不是像对待大评论一样对待它。
这是我试图在浏览器中显示的带有 PHP 代码的网页:
<!DOCTYPE html>
<html lang="en">
<body>
<h1>My Glorious Title</h1>
<?php
echo "Hello world!";
?>
<?php
$text = "Debugging fun with Laravel and PHP";
echo $text;
for ($ix=0; $ix<5; $ix++) {
print( $ix);
}
echo " ";
?>
</body>
</html>
这是浏览器 (Firefox) 在我执行 CTRL-SHIFT-i 时看到的内容:
<!DOCTYPE html>
<html lang="en">
<body>
<h1>My Title</h1>
<!--?php echo "Hello world!"; ?-->
<!--?php
$text = "Debugging fun with Laravel and PHP";
echo $text;
for ($ix=0; $ix<5; $ix++) {
print( $ix);
}
echo " ";
?-->
</body>
</html>
由于所有 PHP 已被注释掉,网页本身仅显示 h1 标签。
PHP 代码显然没有被识别,但我不明白为什么因为我的 Laravel 项目充满了 PHP 并且工作正常。
我的文件 test01.php 位于我项目的根目录中。 我使用管理员 ID 在 Windows 10 home 上运行,所以我看不出这是一个安全问题。 如何让我的浏览器将此识别为它应该执行的实际 PHP 代码?
更新:
我修改了我的源代码,使其完全是这样的:
<html lang="en">
<body>
<h1>My Title</h1>
@php "Hello world!"; @endphp
<?php
$text = "Debugging fun with Laravel and PHP";
echo $text;
for ($ix=0; $ix<5; $ix++) {
print( $ix);
}
echo " ";
?>
</body>
</html>
这就是我在我的页面上得到的:
My Title
@php "Hello world!"; @endphp
当我尝试在第一个 PHP 块周围使用“双胡子”语法时,如下所示:
<!DOCTYPE html>
<html lang="en">
<body>
<h1>My Title</h1>
{{"Hello world!";}}
<?php
$text = "Debugging fun with Laravel and PHP";
echo $text;
for ($ix=0; $ix<5; $ix++) {
print( $ix);
}
echo " ";
?>
</body>
</html>
我在我的网页上得到了这个:
My Title
{{"Hello world!";}}
我在 PHP 代码周围放置的将其描述为 PHP 代码的内容根本无法识别。
显然,我昨天确实度过了一个“愚蠢的一天”,现在我已经按照各种答案中的一些建议正确执行了我的 PHP 代码。
这是我所做的:
我删除了第一个 php 块,我尝试使用@php
然后@endphp
然后是{{ }}
的块; 第二个 php 块没有改变,仍然使用<?php
和?>
。
我将文件重命名为 test01.blade.php 而不是 test01.php。
我将文件从项目的根目录移动到 views 文件夹。
我创建了这条路线:
Route::get('/test01', function () { return view('test01'); });
我在终端 window 中执行npm run dev
。
我在另一个终端 window 中执行php artisan serve
。
我去了localhost:8000/test01
,我的文件现在可以正常执行了。
感谢所有响应者帮助我重回正轨。 现在我只需要弄清楚为什么我还不能让 Debug 在我的小播放文件上运行,但如果我自己无法弄清楚,我会提出一个新问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.