ホームページ > PHPフレームワーク > Laravel > Laravelでモデル変数を呼び出す方法

Laravelでモデル変数を呼び出す方法

王林
リリース: 2023-05-29 09:52:07
オリジナル
828 人が閲覧しました

Laravel は、Web アプリケーションを迅速に構築するための強力な Model-View-Controller (MVC) アーキテクチャを提供する人気の PHP フレームワークです。 Laravel では、モデルはアプリケーション データ管理の中核部分です。この記事では、Laravel でモデル変数を呼び出す方法を説明します。

Laravel には、インスタンス変数と静的変数という 2 つの主なタイプのモデル変数があります。インスタンス変数は特定のモデル インスタンスに属し、モデル内で定義されます。静的変数はモデル クラス内で定義され、特定のモデル インスタンスには関連付けられません。これら 2 つの変数の実装について個別に説明します。

インスタンス変数

インスタンス変数は通常、データベース テーブルのフィールドなどのモデルの属性を格納するために使用されます。 Laravel では、モデル内のインスタンス変数を定義してアクセスするにはどうすればよいですか?たとえば、name という名前のプロパティを定義する User モデルがあるとします。モデルクラスに基本的なコンストラクターを作成して、name 属性のデフォルト値を指定できます。

<?php
 
namespace AppModels;
 
use IlluminateDatabaseEloquentModel;
 
class User extends Model
{
    public $name;
 
    public function __construct()
    {
        $this->name = 'John Doe';
    }
}
ログイン後にコピー

次に、コントローラーまたはその他の場所で、User オブジェクトをインスタンス化し、オブジェクトの name プロパティにアクセスできます。

$user = new User;
$name = $user->name; // 'John Doe'
ログイン後にコピー

非常に簡単ですよね。アクセス メソッドを通じてインスタンス変数を取得または設定することもできます。たとえば、getName メソッドをモデルに追加して、name 属性の値を取得できます:

public function getName()
{
    return $this->name;
}
ログイン後にコピー

次に、このメソッドを呼び出してインスタンス変数の値を取得できます:

$user = new User;
$name = $user->getName(); // 'John Doe'
ログイン後にコピー

set メソッドを渡してインスタンス変数の値を設定することもできます:

public function setName($name)
{
    $this->name = $name;
}
ログイン後にコピー

次に、このメソッドを呼び出してインスタンス変数の値を設定できます:

$user = new User;
$user->setName('Jane Doe');
$name = $user->getName(); // 'Jane Doe'
ログイン後にコピー

静的変数

静的変数はモデル内にあり、クラス内で定義されており、特定のモデル インスタンスには関連付けられていません。静的変数は通常、モデル クラスに対して論理的な削除が有効かどうかなど、モデル クラス自体に関連する情報を格納するために使用されます。 Laravel では、モデル内の静的変数を定義してアクセスするにはどうすればよいですか?

モデル クラスで次のように静的変数を定義できます:

<?php
 
namespace AppModels;
 
use IlluminateDatabaseEloquentModel;
 
class User extends Model
{
    public static $softDeleteEnabled = true;
 
    // ...
}
ログイン後にコピー

その後、コントローラーまたは他の場所でその静的変数にアクセスできます:

$softDeleteEnabled = User::$softDeleteEnabled; // true
ログイン後にコピー

静的変数クラス内の self または static キーワードを介してアクセスできます。モデル クラスの静的変数にアクセスしたい場合は、self キーワードを使用できます:

class User extends Model
{
    public static $softDeleteEnabled = true;
 
    public function isSoftDeleteEnabled()
    {
        return self::$softDeleteEnabled;
    }
}
ログイン後にコピー

次に、このメソッドを呼び出して静的変数の値を確認できます:

$user = new User;
$softDeleteEnabled = $user->isSoftDeleteEnabled(); // true
ログイン後にコピー

Ifクラス内の静的変数にアクセスするには、static キーワードを使用できます:

class Admin extends User
{
    public function isSoftDeleteEnabled()
    {
        return static::$softDeleteEnabled;
    }
}
ログイン後にコピー

これで、Admin オブジェクトをインスタンス化し、isSoftDeleteEnabled メソッドを呼び出して静的変数の値を確認できます:

$admin = new Admin;
$softDeleteEnabled = $admin->isSoftDeleteEnabled(); // true
ログイン後にコピー

結論

Laravel では、モデルはアプリケーション データ管理の中核部分です。インスタンス変数と静的変数は、2 つの一般的なモデル変数です。インスタンス変数は通常、データベース テーブルのフィールドなどのモデルの属性を格納するために使用されます。静的変数は、モデル クラス自体に関連する情報を格納するために使用されます。この記事では、Laravel でこれら 2 種類の変数を定義し、アクセスする方法を検討しました。この知識を習得すると、Laravel アプリケーションをより深く理解し、開発できるようになります。

以上がLaravelでモデル変数を呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート