webman视图模板引用公共文件时,公共文件变量无法赋值

zhaohanfeng

问题描述

webman视图模板引用公共文件时,公共文件变量无法赋值

程序代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <title><?= $title?></title>
    <?php element('/front/view/front/head.html')?>
</head>
<body>
<?php element('/front/view/front/header.html')?>
<div class="wrapper cf">
    <div class="errorpage">
        <i class="iconfont">&#xe60e;</i>&emsp;<?= $message?>
    </div>
</div>
</body>
</html>
<div class="header">
    <div class="wrapper">
        <?php var_dump($login);?>
        <?php if (isset($login) && $login){?>
        <img class="<?= $logocss?>" src="<?= $logo_url?>"
             alt="<?= $company_name?>"/>
        <span><?= $person_info?:''?></span>
        <?php }?>
    </div>
</div>
function element($file = '')
{
    return include app_path() . $file;
}

报错信息

ErrorException: Undefined variable $login in D:\work\Talentscan\project\code\DataTalk\branches\talent_review\app\front\view\front\header.html:3
Stack trace:
#0 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\app\front\view\front\header.html(3): {closure:D:\work\Talentscan\project\code\DataTalk\branches\talent_review\support\bootstrap.php:31}(2, 'Undefined varia...', 'D:\\work\\Talents...', 3)
#1 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\app\functions.php(549): include('D:\\work\\Talents...')
#2 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\app\front\view\index\index.html(8): element('/front/view/fro...')
#3 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\webman-framework\src\support\view\Raw.php(71): include('D:\\work\\Talents...')
#4 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\webman-framework\src\support\helpers.php(251): support\view\Raw::render('index/index', Array, 'front', '')
#5 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\app\front\controller\IndexController.php(119): view('index/index', Array)
#6 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\webman-framework\src\App.php(336): app\front\controller\IndexController->renderLandingPage(Object(support\Request), '1t', 'dw')
#7 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\webman-framework\src\App.php(359): Webman\App::{closure:Webman\App::getCallback():334}(Object(support\Request), '1t', 'dw')
#8 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\app\middleware\AuthCheck.php(39): Webman\App::{closure:Webman\App::getCallback():357}(Object(support\Request))
#9 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\webman-framework\src\App.php(352): app\middleware\AuthCheck->process(Object(support\Request), Object(Closure))
#10 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\app\middleware\BasicCheck.php(70): Webman\App::{closure:{closure:Webman\App::getCallback():349}:350}(Object(support\Request))
#11 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\webman-framework\src\App.php(352): app\middleware\BasicCheck->process(Object(support\Request), Object(Closure))
#12 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\webman-framework\src\App.php(150): Webman\App::{closure:{closure:Webman\App::getCallback():349}:350}(Object(support\Request))
#13 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\workerman\src\Connection\TcpConnection.php(670): Webman\App->onMessage(Object(Workerman\Connection\TcpConnection), Object(support\Request))
#14 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\workerman\src\Events\Select.php(408): Workerman\Connection\TcpConnection->baseRead(Resource id #183)
#15 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\workerman\src\Worker.php(1602): Workerman\Events\Select->run()
#16 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\workerman\src\Worker.php(1527): Workerman\Worker::forkWorkersForWindows()
#17 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\vendor\workerman\workerman\src\Worker.php(593): Workerman\Worker::forkWorkers()
#18 D:\work\Talentscan\project\code\DataTalk\branches\talent_review\runtime\windows\start_webman.php(33): Workerman\Worker::runAll()
#19 {main}

操作系统及workerman/webman等框架组件具体版本

Workerman/5.1.1 PHP/8.4.6 (Jit off) Windows NT/10.0

83 1 0
1个回答

Madman

/vendor/workerman/webman-framework/src/support/view/Raw.php
参考这个文件的render函数自己写一个只incloud template不执行return的函数,我是这样解决的,不知道有没有更好的方法。。。

  • 暂无评论
×
🔝