[Laravel]毎日の記録共有

記事ディレクトリ

文法

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がデータベースに非常にゆっくりと接続していることが検出されます
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がの場合、locallaravel.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

おすすめ

転載: blog.csdn.net/qq_22227087/article/details/82527526