記事ディレクトリ
- 文法
-
-
- Anzhao中国語のアルファベット順
- 0.ミックスの更新/インストール中にエラーが発生しました
- 1.ビューテンプレート `Request :: path()`でページの現在のルートを取得します
- 2. save()操作中に、エラーを報告し続けました:配列から文字列への変換。最終的に、渡された他のフィールドは配列タイプであり、データベースフィールドタイプは文字列であることが判明しました。
- 3. ajax elementUIアップロードファイル报错:ルート['ログイン'] xxxx、
- 4. find_in_set(<受信値>、<フィールド名>);
- 5. [Laravel APIが常にJSON形式の応答を返すようにするにはどうすればよいですか?](https://segmentfault.com/a/1190000016261077)
- 6. [時差(年、月、日、時、分、秒)を取得する](https://www.php.net/manual/zh/datetime.diff.php)
- 7.Ajaxバリデーターの検証
- 8. [在Docker中使用Laravelスケジュール](https://learnku.com/articles/7022/using-laravel-schedule-in-docker)
- 9.getChangesとgetDirtyの違い
- 10. $ appendsプロパティの値を非表示にします
- 11.非表示の属性を表示し、表示属性を非表示にします
- 12. laravelが属性の並べ替えを追加します(sortBy( '')/ sortByDesc( ''))
- 13. SASSエラー:互換性のない単位:「px」と「rem」
- 14.php職人パラメータの意味
-
- データベースの側面
- 周囲
-
-
- 1.サーバーがデプロイされたとき
- 2.Laravelに必要なPHP拡張機能
- 2.解决:有効なキャッシュパスを入力してください。
- 3.エラー:file_put_content(.... / storage / framework / sessions / xxxxxxxxx):ストリームを開くことができませんでした:アクセスが拒否されました{xxxxxx .......}
- 4.マルチ環境ENV構成
- 5.JWTはユーザー情報を取得します
- 6.アクセスエラー404が見つかりません
- 7.リバースプロキシモジュールをオンにします
- 8.カスタムエラーページ
- 9.スクリプト@phpartisan package:エラーコード255で返されたpost-autoload-dumpイベントの処理を検出します
- 10. env、configを踏む
- 11. phpsessionclean.service:devices.listのリセットに失敗しました:操作は許可されていません
- 12.ベンダーが存在せず、作成できませんでした
- 13.MACが無効です。{"userId":2、 "exception": "[object](Illuminate \\ Contracts \\ Encryption \\ DecryptException(code:0):MACが無効です。/var/www/html/web/vendor/ laravel / framework / src / Illuminate / Encryption / Encrypter.php:199)
- 14. PackageManifest.php行122:undefined index:nameで最適化された自動ロードファイルを生成します
-
文法
Anzhao中国語のアルファベット順
use App\Models\Users;
use DB;
$user = Users::orderBy(DB::raw('convert(`company_name` using gbk)'), 'asc')
->get()->toArray();
0.ミックスの更新/インストール中にエラーが発生しました
ミックスの更新/インストール時にエラーが発生します。
残念ながら、依存関係が正しくインストールされない理由は無数にあります。一般的な根本原因は、古いバージョンのノード(node -v)とnpm(npm -v)のインストールです。最初のステップは、http://nodejs.orgにアクセスして更新することです。
それ以外の場合は、通常、削除する必要がある間違ったロックファイルに関連しています。この一連のコマンドですべてを最初からインストールしてみましょう
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
npm install
1.ビューテンプレートでページの現在のルートを取得します Request::path()
2. save()操作中に、エラーを報告し続けました:配列から文字列への変換。最終的に、渡された他のフィールドは配列タイプであり、データベースフィールドタイプは文字列であることが判明しました。
3. ajax elementUIアップロードファイル报错:ルート['ログイン'] xxxx、
プログラム:
<el-upload :headers="uploadHeader" ></el-upload>
uploadHeader: {
Authorization: "Bearer " + window.localStorage.getItem("token")
}
4. find_in_set(<受信値>、<フィールド名>);
find_in_set(str、strlist):クエリフィールド(strlist)には(str)の結果が含まれ、strがstrlistにない場合、またはstrlistが空の場合、返される結果はnullまたはレコード(strはstrlistの位置にあります)です。文字列の場合は0が返され、パラメータがnullの場合はnullが返されます。
例:queryuser_idに値3が含まれている
表数据
id user_id
3 1,2,3,4
4 1,2,13,4
sql :
$query->where(function ($query) use ($uid) {
$query->whereRaw("FIND_IN_SET($uid, user_id)>0");
});
5. Laravel APIが常にJSON形式の応答を返すようにするにはどうすればよいですか?
6.時差(年、月、日、時、分、秒)を取得します
7.Ajaxバリデーターの検証
$validator = Validator::make(Request()->all() [
'question' => 'required',
'answer' => 'required',
'product_type' => 'required|in:' . $productList,
'tags' => 'array',
], [
'question.required' => '问题 为必填项',
'answer.required' => '解答内容 为必填项',
'product_type.required' => '产品类型 为必选项',
]);
if ($validator->fails()) {
return $this->ajaxFail(false, $validator->errors()->all());
}
8.ドッカーで使用Laravelスケジュール
9.getChangesとgetDirtyの違い
getDirty 需要在 save 前调用
而 getChanges 在 save 后调用。
在 Laravel Tinker 中测试一下:
>>> use App\Models\Order;
>>> $order = Order::find(3);
>>> $order->notes = "带两根大葱";
=> "带两根大葱"
>>> $order->getDirty();
=> [
"notes" => "带两根大葱",
]
>>> $order->getChanges();
=> []
>>> $order->save();
=> true
>>> $order->getDirty();
=> []
>>> $order->getChanges();
=> [
"notes" => "带两根大葱",
"updated_at" => "2019-01-24 12:05:40",
]
10. $ appendsプロパティの値を非表示にします
// userModel.php
protected $appends = ['is_admin'];
public function getIsAdminAttribute()
{
return $this->attributes['admin'] == 'yes';
}
// userController.php
$user->get()->makeHidden(['is_admin']);
11.非表示の属性を表示し、表示属性を非表示にします
隐藏属性:
protected $hidden = ['password'];
临时暴露隐藏属性:
return $user->makeVisible('password')->toArray();
-------------------------------------------------
显示属性:
protected $visible = ['first_name', 'last_name'];
临时隐藏显示属性
return $user->makeHidden('first_name')->toArray();
12. laravelが属性の並べ替えを追加します(sortBy( '')/ sortByDesc( ''))
$list = User::get()->sortBy('age'); 升序
$list = User::get()->sortByDesc('age'); 降序
13. SASSエラー:互換性のない単位:「px」と「rem」
ユニット値を
考慮したresources / sass / _variables.scssで$font-size-base
、
理由:
ユニットのブートストラップパラメーターで定義された不整合が導入されたため
14.php職人パラメータの意味
参照リンク:https://learnku.com/docs/laravel-cheatsheet/5.8/artisan/4430
データベースの側面
1.データの読み込みが遅い可能性があります
1)ドメイン名がIPアドレスに変更されます:https://codeday.me/bug/20181030/324662.html
2)データベース構成のエンコード形式の問題:https://lukem.top/2018/02/01/ laravel-eloquent-is -slow /
同じエンコード形式では、Laravelを介して同じクエリを実行すると、インデックスが正常に機能しなくなります。解決策、構成ファイルの照合順序をnullに変更します
3)OneApmツールを介して、Pdoがデータベースに非常にゆっくりと接続していることが検出されます
。4)サーバーオペレーター間の遅延の問題
周囲
1.サーバーがデプロイされたとき
php artisan cache:clear
php artisan view:clear
ルーティングロードのphp artisan route:clear
最適化:構成ロードのphp artisan config:clear
最適化:自動ロードの最適化:composer install --optimize-autoloader
便宜上、プロジェクトのルートディレクトリにスクリプトを書くことができます optimize.sh
#!/usr/bin/env bash
php artisan clear-compiled
php artisan cache:clear
php artisan route:cache
php artisan config:cache
php artisan optimize --force
composer dump-autoload --optimize
chmod -R 777 storage
chmod -R 777 bootstrap/cache
2.Laravelに必要なPHP拡張機能
OpenSSL PHP
PHP PDO 扩展
PHP Mbstring 扩展
PHP Tokenizer 扩展
PHP XML 扩展
PHP Ctype 扩展
PHP JSON 扩展
2.解决:有効なキャッシュパスを入力してください。
ストレージでのフレームワークの作成は、
mkdir storage/framework/{cache, sessions, views}
おおよそ次のようになります。
3.エラー:file_put_content(…/ storage / framework / sessions / xxxxxxxxx):ストリームを開くことができませんでした:アクセスが拒否されました{xxxxxx…}
解決策:775に上がるために彼と彼の息子にファイルするために必要
な特別なstorage
フォルダーのアクセス許可、
sudo chmod -R 775 storage/
4.マルチ環境ENV構成
背景:.env
たとえば、プロジェクトに複数のファイルがある場合、
- .env
- .env.local
- env.production
解決策:(.env.local
例を挙げて)
- Apacheサーバーを構成します
SetEnv APP_ENV local
; - Nginxサーバーを構成します
fastcgi_param APP_ENV local;
; //最後のセミコロンに注意してください - Laravelプロジェクトに対応します。
.env.local
ここでAPP_ENV = local
; - laravelは
env('APP_ENV')
環境変数APP_ENV
を渡して現在の特定の環境を決定します。環境変数APP_ENV
がの場合、local
laravel.env.local
ファイルが自動的にロードされます。
最後の実行php artisan config:cache && rm bootstrap/cache/* -rf
キャッシュのクリア
5.JWTはユーザー情報を取得します
- ajaxリクエストヘッダーに追加する必要があります
Authorization: Bearer <token>
(Bearerの後のスペースに注意してください) - 呼ばれるインターフェースに追加する必要があり
Request $request
、その後、auth('api')->user()
ユーザー情報を取得
6.アクセスエラー404が見つかりません
Apacheがリライトモジュールで有効になっているかどうか sudo a2enmod rewrite
7.リバースプロキシモジュールをオンにします
Apacheでプロキシモジュールが有効になっているかどうか sudo a2enmod proxy proxy_balancer proxy_http
8.カスタムエラーページ
https://www.golaravel.com/post/laravel-5-0-custom-error-pages/
9.スクリプト@phpartisan package:エラーコード255で返されたpost-autoload-dumpイベントの処理を検出します
[xx@localhost api]$ composer dump-autoload
Generating optimized autoload files
Class Illuminate\Foundation\ComposerScripts is not autoloadable, can not call post-autoload-dump script
> @php artisan package:discover
Fatal error: Uncaught Error: Class 'Illuminate\Foundation\Application' not found in /data/www/default/dms/api/bootstrap/app.php:14
Stack trace:
#0 /data/www/default/dms/api/artisan(20): require_once()
#1 {main}
thrown in /data/www/default/dms/api/bootstrap/app.php on line 14
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255
解決:composer install
10. env、configを踏む
実行すると、
php artisan config:clear
結果/bootstrap/
がディレクトリconfig.php
に生成され、データベースがオンラインデータを読み取ることがわかります。これは非常に恥ずかしいことです。
正常情况:
env 方法 可以获取 .env 文件的值
config 可以获取 config 文件夹下 指定配置的值
非正常情况:
当我们执行了 php artisan config:cache 之后
在bootstrap/cache 文件夹下 会生成一个 config.php 文件
这个文件包含了 config 文件夹下的所有文件内容,并以文件名作为键值
同时把 .env 文件 根据特殊的解析方式,解析到 config.php
最终结果:
env 无法获取到 .env 文件的值
config 方法 只能获取到 bootstrap/cache/config.php 文件里面的值
---------------------
作者:断水流灬
来源:CSDN
原文:https://blog.csdn.net/duanshuiliu2017/article/details/79879463
版权声明:本文为博主原创文章,转载请附上博文链接!
11. phpsessionclean.service:devices.listのリセットに失敗しました:操作は許可されていません
エラーが発生する環境
システム:Debian 4.9.88
環境:Apache2 PHP 7.1
フレームワーク:Laravel 5.7
リファレンス:
https ://github.com/turnkeylinux/tracker/issues/1114
12.ベンダーが存在せず、作成できませんでした
chmod 777 -R www
13.MACが無効です。{“ userId”:2、“ exception”: "[object](Illuminate \ Contracts \ Encryption \ DecryptException(code:0):MACが無効です。/var/www/html/web/vendor/laravel/frameworkにあります。 /src/Illuminate/Encryption/Encrypter.php:199)
ブロガーがウェブサイトのドメイン名をAからBに変更した後、エラーを報告しました。MACは無効です。したがって、採用された2番目の方法はAPP_URLを変更することです
解决方式:
第一种:执行php artisan key:generate 生成新的 APP_KEY
第二种:查看APP_URL 是否与访问地址一致
第三种:清除浏览器缓存
14. PackageManifest.php行122:undefined index:nameで最適化された自動ロードファイルを生成します
参照:https://github.com/laravel/framework/commit/65a555105f7812e87888245c8123cad027bf88df