Error in Yii 2.0: php warning: strpos(): empty needle in Analysis of e:\wwwroot\pcs-api\vendor\yiisoft\yii2\log\target.php on line 243
1. Execute the command and report an error: php warning: strpos(): empty needle in E:\WWWRoot\PCS-API\Vendor\yiisoft\yii2\log\target.php on line 243, as shown in Figure 1
PS E:\wwwroot\pcs-api> ./yii cmc-console-user/sync
ExceptionYii\Web\ServerErrorHttpExceptionwith messageFramework service console http request failed: tenant information does not exist
in e:\wwwroot\pcs-api\common\services\CmcConsoleUserService.php:102
stack trace:
#0 e:\wwwroot\pcs-api\console\Consoles\CmcConsoleUserController.php(62): Common\Services\CmcConsoleUserService::httpg
etUserList(array)
#1[internal function]: Console\Controllers\CmcConsoleUserController->ActionSync()
#2 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\inlineaction.php(57): call_user_func_array(array, array)
#3 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\controller.php(157): Yii\Base\InlineAction->RunWithParams(Array)
#4 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\controller.php(148): Yii\Base\Controller->RunAction(sync, array)
#5 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\module.php(528): yii\console\controller->runaction(sync, array)
#6 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\application.php(180): yii\base\module->RunAction(CMC-console-use...,
array)
#7 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\application.php(147): yii\console\application->RunAction(CMC-Console-
use..., array)
#8 E:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\application.php(386): Yii\Console\Application->HandleRequest(Object(Yii\C
onsole\request))
#9 E:\wwwroot\pcs-api\yii(23): yii\base\application->run()
#10 {main}
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
2. View \console\runtime\logs\app.log
2019-04-02 14:03:05[-][-][-][warning][yii\log\Dispatcher::dispatch]Unable to send log via yii\log\dbtarget: php warningYii\Base\ErrorExceptionwith messagestrpos(): Empty Needle
in e:\wwwroot\pcs-api\vendor\yiisoft\yii2\log\target.php:243
stack trace:
#0[internal function]: yii\base\ErrorHandler->HandleError(2,strpos(): Empty...,E:\wwwroot\\pcs-..., 243, array)
#1 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\log\target.php(243): strpos(yii\\base\\applic...,)
#2 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\log\target.php(124): yii\log\target::FilterMessages(array, 0, array, array)
#3 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\log\dispatcher.php(189): yii\log\target->collect(array, false)
#4 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\log\logger.php(177): yii\log\dispatcher->dispatch(array, false)
#5 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\log\logger.php(124): yii\log\logger->flush()
#6[internal function]: yii\log\logger->yii\log\{closure}()
#7 {main}
2019-04-02 14:03:05[-][-][-][info][application]$_get =[]
$_post =[]
$_files =[]
$_cookie =[]
$_server =[]
3. Edit on the command line
var_dump(strpos("fabio",B));
exit;
PS E:\wwwroot\pcs-api> ./yii cmc-console-user/sync int(2)
4. Edit on the command line. Once an exception is thrown in the console command line, when writing to the log, an error will be reported: php warning: strpos(): Empty needle, as shown in Figure 2
var_dump(strpos("fabio",));
exit;
PS E:\wwwroot\pcs-api> ./yii cmc-console-user/sync
php warningYii\Base\ErrorExceptionwith messagestrpos(): Empty Needle
in e:\wwwroot\pcs-api\console\controllers\cmcconsoleUserController.php:37
stack trace:
#0[internal function]: yii\base\ErrorHandler->HandleError(2,strpos(): Empty...,E:\wwwroot\\pcs-..., 37, array)
#1 e:\wwwroot\pcs-api\console\controllers\CmcConsoleUserController.php(37): strpos(fabio,)
#2[internal function]: Console\Controllers\CmcConsoleUserController->ActionSync()
#3 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\inlineaction.php(57): call_user_func_array(array, array)
#4 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\controller.php(157): Yii\Base\InlineAction->RunWithParams(Array)
#5 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\controller.php(148): Yii\Base\Controller->RunAction(sync, array)
#6 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\module.php(528): yii\console\controller->runaction(sync, array)
#7 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\application.php(180): yii\base\module->RunAction(CMC-console-use...,
array)
#8 E:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\application.php(147): yii\console\application->RunAction(CMC-Console-
use..., array)
#9 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\application.php(386): Yii\Console\Application->HandleRequest(Object(Yii\C
onsole\request))
#10 e:\wwwroot\pcs-api\yii(23): yii\base\application->run()
#11 {main}
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
php warning: strpos(): empty needle in e:\wwwroot\PCS-api\vendor\yiisoft\yii2\log\target.php on line 243
Edit \console\config\main.php to adjust the configuration of the log component
components=>[
log=> [
tracelevel=> yii_debug ? 3 : 0,
targets=> [
file=> [
class=>yii\log\filetarget,
levels=> [Error,WARNING]#ATFP_CLOSE_Translate_span#,
],
db=>[
class=>yii\log\dbtarget,
exception=> [;]#ATFP_CLOSE_Translate_span#,
prefix=> function () {
$url = !yii:$app->request->isConsoleRequest ? yii::$app->request->getURL() : null;
$user = yii::$app->has(user, true) ? yii::$app->get(user) : null;
$userId = $user ? $user->getId(false) :-;
return sprintf([%s][%s][%s], yii::$app->id, $url, $userid);
},
logvars=>[],
]
],
],
],
Adjust to:
components=>[ log=> [ tracelevel=> yii_debug ? 3 : 0, targets=> [ file=> [ class=>yii\log\filetarget, levels=> [Error,WARNING]#ATFP_CLOSE_Translate_span#, ], db=>[ class=>yii\log\dbtarget, levels=> [Error,WARNING]#ATFP_CLOSE_Translate_span#, ], ], ], ],
6. Once an exception is thrown on the console command line, when writing a log, an error is reported: php warning: strpos(): Empty needle has been solved
PS E:\wwwroot\pcs-api> ./yii cmc-console-user/sync
php warningYii\Base\ErrorExceptionwith messagestrpos(): Empty Needle
in e:\wwwroot\pcs-api\console\controllers\cmcconsoleUserController.php:37
stack trace:
#0[internal function]: yii\base\ErrorHandler->HandleError(2,strpos(): Empty...,E:\wwwroot\\pcs-..., 37, array)
#1 e:\wwwroot\pcs-api\console\controllers\CmcConsoleUserController.php(37): strpos(fabio,)
#2[internal function]: Console\Controllers\CmcConsoleUserController->ActionSync()
#3 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\inlineaction.php(57): call_user_func_array(array, array)
#4 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\controller.php(157): Yii\Base\InlineAction->RunWithParams(Array)
#5 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\controller.php(148): Yii\Base\Controller->RunAction(sync, array)
#6 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\module.php(528): yii\console\controller->runaction(sync, array)
#7 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\application.php(180): yii\base\module->RunAction(CMC-console-use...,
array)
#8 E:\wwwroot\pcs-api\vendor\yiisoft\yii2\console\application.php(147): yii\console\application->RunAction(CMC-Console-
use..., array)
#9 e:\wwwroot\pcs-api\vendor\yiisoft\yii2\base\application.php(386): Yii\Console\Application->HandleRequest(Object(Yii\C
onsole\request))
#10 e:\wwwroot\pcs-api\yii(23): yii\base\application->run()
#11 {main}

