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的日志功能是不允许打印出来的? 顺便说一句,我没有在laravel.log或php错误日志中看到任何错误。
答案 0 :(得分:0)
不,没有关于日志记录如何工作的特殊规则 - 它会记录作为第一个参数传递的字符串+可能作为第二个参数传递的上下文数组。
让我们来看看您的代码:
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崩溃,因为第二个参数的类型无效。它需要一个数组,但它得到了字符串。