2021/12/15

3 Essential Checks in Laravel

Contents
  1. Null Check
  2. Empty Check
  3. Zero Check

Do you find your code runs well the first, second, third time, but fails in production? Sometimes the unique but chances are assumed the data would be of “x” kind and actually it was “yyyxz” kind.

Null check

We’ve all made this mistake. Never assume a value won’t be null! 

function getPikachusTrainer() {
    $pokemon = Pokemon::where(“name”, “Pikachu”)->first();
    return $pokemon->trainer->name;
}

Will return an error: 

Trying to get property of non-object

But a simple check:

If ($pokemon) {
    $trainer = Trainer::where(“name”, $pokemon->name);
} else {
    return “sorry, no trainer found”;
}

Will allow us to avoid the issue.

Empty Check

The above works because it is an object and laravel returns null if a query can’t find anything. For arrays, we should not assume the array contains more than 0 elements. 

foreach ($bagOfPokeballs as $key => $pokeball) {
    print($key . “contains the following Pokemon” . $pokeball->name);
}

The above code will cause a similar error: “Trying to get property “name” of non-object”

In that case we can just add !empty($array) to our null check:

If (!empty($bagOfPokeballs) && $bagOfPokeballs) {
    foreach ($bagOfPokeballs as $key => $pokeball) {
        print($key . “contains the following Pokemon” )
        print($pokeball->name)
    }
}

Zero Check

Just like arrays, we should not assume integers are > 0. Especially since Laravel/PHP will return an error when divided by zero.

    Divide By Zero Error

Thankfully, the way to avoid this is easy as pi!

if ($numBattles && $numBattles > 0) {
    $percentageVictories = (($numWins / $numBattles) * 100)
}

関連記事


icon-loading

AWS Elastic Beanstalk で Laravel を動かしてみた

AWS Elastic Beanstalk の使い方をご紹介しながら Laravel を動かしてみます。 公式ドキュメントを読んで「動かない...」となった方も、本記事を読めば大丈夫です。 NGINX の設定ファイルを事前に配置、ソースコードを適切にZIP化、 Amazon RDS を追加...といった手順を踏んでいきます。

icon-loading

Laravel環境構築(Mac編)

Mac端末にPHPフレームワーク「Laravel」の環境を構築します。 ローカル環境でLaravelを実行するところまで確認していきます。

icon-loading
data_encryption

Easy connection to a remote server using SSH (Linux & macOS)

Easily connect to a remote server using SSH on Linux and macOS. Learn how to use the ssh command in a terminal and how to configure ssh to store your private keys and passwords.

icon-loading

EC2からS3にcronでバックアップ

とりあえずEC2のこのディレクトリをS3にバックアップしといてと言われたあなたへ

icon-loading

Laravelでバックアップ処理を実装する

Laravel-backupパッケージを利用してソースコードやDBのバックアップを毎日実行するところまで解説していきます。

icon-loading

Laravel キャッシュクリアコマンド

他の開発メンバーが実装したコードが動かない...そんなとき、一度落ち着いて実行して欲しいLaravelのキャッシュクリアコマンドをまとめました。