Laravel 新手,因此想了解这一点。
Log::info() 是否不允许打印某些信息? 它默默地死去,因此想知道这是否是我尚未学习的 Laravel 规则..
我的 HTML 表单就是这种类型:
<form>
<input type="hidden" name="val[name]">
<input type="hidden" name="val[address]">
</form>
我的 Ajax 函数只是创建一个 formData 并将其发送到后端。
$.ajax({
url : baseUrl + 'update/' + id,
type : 'POST',
data : new FormData(this),
contentType : false,
cache : false,
processData : false,
success : function(
}
});
我的控制器 打印 /Input::get('val') 没有问题。
我的存储库
public function update user($id, $val)
{
Log::info('reached forward() in the repository');
$post = $this->findById($postID);
Log::info('Going to print the values now');
Log::info('Val : ', $val);
//Log::info('Post-ID : ', $id);
Log::info('-----------------');
Log::info('Extracting the VAL to regular variables');
$expected = [
'name' => '',
'address' => []
];
/**
* @var $name
* @var $address
*/
extract($val = array_merge($expected, $val)); // create $name & $address
Log::info('After extraction'); // Gets printed
if($name == 'Tim')
{
Log::info('Name entered is in fact Tim'); // This does get printed
}
Log::info('Name sent is : ', $name); // **This is never printed**
Log::info('Printed Name'); // **This is never printed**
}
我做错了什么,还是 Laravel 的 Log 函数不允许打印它们?
顺便说一句,我在 laravel.log 或 php 错误日志中没有看到任何错误。
不,关于日志记录的工作方式没有特殊规则 - 它记录作为第一个参数传递的任何字符串+可能作为第二个参数传递的上下文数组。
让我们看看你的代码:
Log::info('Name entered is in fact Tim'); // This does get printed
Log::info('Name sent is : ', $name); // **This is never printed**
Log::info('Printed Name'); // **This is never printed**
第一行被打印,因为一个字符串被传递给 info() 方法。 第二次调用无效,因为您传递了 2 个字符串参数。如果您打算连接 发送的名称是: 和 $name,则需要使用点而不是逗号:
Log::info('Name sent is : ' . $name); // Now this will get printed
第三行不打印的原因是第二行由于第二个参数的类型无效而导致 PHP 崩溃。它需要一个数组,但它得到的是字符串。