Laravel日常开发踩坑

使用 session() 存储数据,却无法保存

laravel的session系统不是马上执行后保存,而是在响应信息之前保存(手动发送响应信息无法保存),所以中途exit(); die(); dd(); dump();都会中止保存。

需要使用var_dump();调试程序或session()->save();手动保存


laravel 部署后JS CSS异常

href="{{asset('css/app.css')}}"


Laravel中获取Http请求头部Header信息的函数

使用Request的header方法

1
2
3
4
use Illuminate\Support\Facades\Request;
...
Request::header('Content-Type');
Request::header('User-agent');

1
2
3
4
5
6
use Illuminate\Http\Request;
...
public function admin(Request $request)
{
$request->header('key');
}

Request的文档


Homestead配置后显示No input file specified.

解决:
vagrant provision : 运行配置的所有服务

参考:

建立Laravel Homestead

Vagrant使用笔记


使用homestead在本地终端输入php artisan migrate相关操作报错

1
2
3
4
5
6
7
8
In Connection.php line 664:</code>

SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost'
(using password: YES) (SQL: select max(`batch`) as aggregate from `mig
rations`)
In Connector.php line 67:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost'
(using password: YES)

解决方式:
因为是在虚拟机上跑的homestead所以端口在.env配置应该为3306

正常应该在虚拟机的中断下跑命令,在本地跑命令应该修改.env 的端口为33060


(转载)安正超公众号overtrue:

分享一个大家可能会踩到的坑,如果你在使用 Laravel,并且日志配置是按天记录的(daily),那么你千万不要用 root 角色来执行计划任务,请以你的 nginx 子进程用户(也就是我们平常说的 www 用户),比如我的机器 Ubuntu 默认 apt 安装 nginx 的话是 www-data,那么应该修改 crontab 配置像以下这样:

1
* * * * * www-data php [项目目录]/artisan schedule:run >> /dev/null 2>&1

否则,以 root 角色执行的话,只要遇到记日志的代码就会以 root 角色创建,这样你的 web 服务运行时就无法写入日志了。


  • $ yarn install –no-bin-links
  • $ yarn add cross-env
  • $ npm run dev
  • $ npm run watch-poll

这样可以解决,原因暂时不详。

参考网站1
参考网站2
参考网站3