如何将控制器中的字符串变量返回到DOM,该变量包含src中带有asset()函数的html图像标记



我面临Laravel 9的问题。在我的控制器中,我创建了一个变量,其中包含要返回到视图的html代码。

我在确定应该在哪里使用单引号、双引号或反引号时遇到问题,以便正确编译image src中的{{asset((}}。

现在,我的图像url在控制台中看起来是这样的:http://127.0.0.1:8000/%7B%7B%20asset(存储/上传/test2png.png(%20%7D%7D

以下是控制台中的错误:

GEThttp://127.0.0.1:8000/%7B%7B%20asset(存储/上传/test2 png.png(%20%7D%7D 404(未找到(

这是我谈论的变量:

$celebrityDetailsContent = `
@if(isset($celebrityClicked))
<div id="celebrity_text_and_picture_container" class="w-100 p-3">
<img src="{{ asset('storage/upload/'.{$celebrityClicked->image}) }}" class="float-start img-border-radius img-thumbnail w-50 m-3" alt="Celebrity photo" title="Celebrity photo">
<p class="fw-bold">{$celebrityClicked->firstname} {$celebrityClicked->lastname}</p>
<p class="text-start">{$celebrityClicked->description}</p>
</div>
@else 
<h2 class="fw-bold">Click on a celebrity to display details</p>
@endif
`;
return $celebrityDetailsContent;

谢谢你的帮助。

不要在控制器中使用{{ }}。它只适用于blade文件。试试这个:

if (isset($celebrityClicked)) {
$celebrityDetailsContent = '
<div id="celebrity_text_and_picture_container" class="w-100 p-3">
<img src="' . asset('storage/upload/' . $celebrityClicked->image) . '" class="float-start img-border-radius img-thumbnail w-50 m-3" alt="Celebrity photo" title="Celebrity photo">
<p class="fw-bold">' . $celebrityClicked->firstname . ' ' . $celebrityClicked->lastname . '</p>
<p class="text-start">' . $celebrityClicked->description . '</p>
</div>';
} else {
$celebrityDetailsContent = '<h2 class="fw-bold">Click on a celebrity to display details</p>';
}
return $celebrityDetailsContent;

最新更新