Submitted by gouki on 2024, June 5, 9:47 AM
Laravel 官方在推上说即将推出 Laravel11,这次的推出的版本将以极致的精简,而且去掉了很多原来为了结构而分拆的文件。象 Console/Http 下的 Kernel 文件,全部去掉,而且改 bootstrap/app.php 来实现了,在路由里甚至留了一下 health 。用于其他监控项目来检查服务器是否正常。默认是:http://{hostname}/up,我在本地运行下来,执行时间是39ms,所以我就更加想尝试用11来把我当前的博客重写一下(之前写的时候 ,都是考虑直接使用原来的数据库结构,导致写了几次都发现很不 laravel,所以几次就放弃了)
Filament,是一个后台管理项目,基于 livewire 的(关于 livewire,可以查看 https://livewire.laravel.com ),号称是不用写 JS 的后台管理。之所以选择这个,是本来几年前用的是 dcat-admin,然而作者也已经好多年没更新了(这就是使用第三方开源项目的尴尬之处,作者也不太可能用爱发电,如果项目没有赢利或者找不到赢利点,这个项目很可能就无疾而终了)。而选择 filament 也是因为看中了他的生态,有完善的插件平台(有免费和付费插件)。一旦有人购买插件,会促使更多的人使用并扩展(搜了一下,其实有不少类似的,象:splade.dev / tomatophp / nova[官方] ),但目前看下来,好象还在持续更新的就是 filament 了。在推上也能看到 filament 挺活跃。所以选择它做为接下来3年的后台管理。
今天就先到这里先介绍一下这两个项目,然后准备开始写,遇到踩坑的地方也会记录一下。
项目开始其实很方便
laravel new blog,就可以初始化项目了。因为考虑到其实暂时不需要前台登录,所以没有用 breeze 和 jetstream。
项目初始化后,运行 composer require filament/filament 就可以安装好filament 了
这时候还要运行 php artisan filament:install --panels。安装完面板后,可以通过安装时指定的路由进行访问(默认是 admin,可以在运行的时候 进行设置)【备注:后期要修改的话,可以在 app/Providers/Filament/AdminPanelProvider.php 中进行调整】
但此时还不能登录,因为没有 breeze 和 jetstream ,所以连注册也没有,此时只能通过 php artisan make:filament-user 来新建一个用户。
此时,filament就已经安装完了。项目正式启动。
Tags: laravel, filament
PHP | 评论:0
| 阅读:971
Submitted by gouki on 2023, December 28, 10:26 PM
因为今天用了filamentPHP这个框架,类似 laravel-admin/ dcat-admin等。为什么想用它呢。看官网,插件极其多...
根据官方的教程进行composer require以及publish素材后,本地一切正常,但上线后,报livewire/livewire.js找不到
找了一下根目录,发现确实没有。于是php artisan route:list|grep livewire,看到是由PHP进行模拟的。
但因为我用的是lnmp ,默认对JS有一个30d的缓存,所以需要在js的判断前加上
XML/HTML代码
- location = /livewire/livewire.js {
- expires off;
- try_files $uri $uri/ /index.php?$query_string;
- }:
不设置过期时间 ,同时是由PHP来解析。reload一下nginx,再次打开网页,一切正常
Tags: laravel
PHP | 评论:0
| 阅读:1579
Submitted by gouki on 2023, September 13, 10:41 PM
在使用 phpstorm/webstorm 进行前端开发的时候,一般会设置 alias,比如@,但在 IDEA 中,如果项目是 vite/vuejs 的时候 ,无法识别路径。
网上教程很多,什么设置.eslintrc.js / jsconfig.json / tsconfig.json 之类的,但其实重启 IDE 后仍然无法识别。
查了一下资料,原来目前 phpstorm 对@的 alias,只支持 webpack,也就是说,如果你的前端项目是 webpack 的,其实是能够识别的。因此,只要在项目根目录下,随便建一个文件,尽量不要叫 webpack.config.js,以防被项目自动识别。你可以建一个 alias.config.js,内容如下:
JavaScript代码
- const path = require("path");
- module.exports = {
- resolve: {
- alias: {
- '@': path.resolve(__dirname, 'resources/js'),
- '~': path.resolve(__dirname, 'resources')
- }
- }
- }
看到这个 resource/js 就知道当前是在 laravel 项目下面了。
在 Ide 的 setting中 :
Languaes & Frameworks > Javascript > Webpack ,选择手动,指定 alias.config.js ,确定后,再打开 *.vue 文件,会发现原来的 import 文件都能够自动识别了。
Tags: vite, laravel, webpack, phpstorm, webstorm
Javascript | 评论:0
| 阅读:2423
Submitted by gouki on 2020, May 13, 5:10 PM
之前写过一篇:laravel 队列报错:`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379] ,就在前两天,今天上线看的时候,发现pm2 status的时候显示failed。
于是就在看到底是怎么回事,按理这个参数应该没问题啊?经过不停的测试不停的测试,发现
1、将paramaters放在default和cache中,仍然报错
2、将paramaters放在options里,一样报错
3、将default/cache中的password删除,只除paramaters,报错
4、将default/cache中的password删除,删除paramaters,留options中的paramaters,报错
5、将所有涉及到密码的地方删除,成功
--------再看predis的github发现他已经几年不更新了。所以,我也只能忍喽?不然怎么办?如果有设置密码,就将这个key加回来【因为之前测试过,如果确实有密码,并且设置了,没问题】
再看,pm2 stauts,还是报错,那问题就来了。因为我直接php artisan queue:work --tries=5 --sleep=1没有错,但为什么pm2启动就报错呢?于是查看进程,ps uax|grep artisan,发现运行路径是在release/4目录下。而不是current目录【之所以目录结构 是这样,是缘于我采用deployer进行项目部署的】
即使我在current目录下执行pm2 start xxx.yml,也是默认在release/4路径,毕竟它是映射过来的
所以最终我只能修改yml文件,将artisan路径设置为绝对路径。强行指定为current所在的绝对路径。这样就没有问题了。
至此,Auth没有设置密码的问题解决。同时还解决了artisan 执行queue:work 路径不对的问题(如果不解决这个,这意味着无论我怎么执行,都不在正确的目录下了)
Tags: laravel, predis, auth
PHP | 评论:0
| 阅读:6533
Submitted by gouki on 2020, April 10, 4:10 PM
laravel migratie 创建外键的时候报错:
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `classname` add constraint `classname_classname_id_foreign` foreign key (`classname_id`) references `classnamev2` (`id`))
表名都是测试用的。看了一下,原来是因为classnamev2用了$table->id()来创建主键。所以在创建外键的时候,必须要字段格式完全一致,关联字段必须得unsignedBigInteger()才OK。
默认的主键是无符号大整型,仅仅记录一下。用migrate的时候不能弄混了。
Tags: laravel
PHP | 评论:0
| 阅读:7858