質問

私はここで見つけたドキュメンテーションを読み、続いて説明されています http://larvel.com/docs/eloquent そして私はここで見つけた例のいくつかを試しました これまでのコードです モデル

dbeloquent.php

<?php
class dbeloquent extends Eloquent {

   protected  $table = "users";


    public  function showTbl()
        {
             dd(dbeloquent::$table);
        }
}

//end of model
?>

    route.php

<?php
Route::get('/', function () {
    $model = new dbeloquent();   
    dd($model->someFunction());
});
?>
.

私は最初に私のテーブルを見せたいが、ここに私が持っているものです

宣言されていない静的プロパティへのアクセス:DBeloQuent :: $ Table

誰かが私を助けてくれる

役に立ちましたか?

解決

あなたの dbeloquent クラスは、背景にモデルクラスを拡張しています。eloquent aliasは、 app / config / app.php ファイル

でモデルクラスを指しています。

'eloquent'=> '' Illuminate \ Database \ Eloquent \ Model '

保護されている$ table プロパティは、抽象モデルクラスから拡張され、静的ではないので、それを再分解することはできません(静的または鼻)。Base Modelからプロパティにアクセスできます。

__get($key) method
.

しかし問題は、 $ table プロパティが実行されている実行時に、実行時に保護され変更されているため、どの実行時に表示されます。

最後に、それは宣言されず、そのような方法で使用されるように定義されていません - Laravelは内部的にその財産を探しています。電話を追跡してみてください、そしてあなたはおそらく内部に起こっているのかを見つけるでしょう。 物事を複雑にしないでください、彼らは複雑になるべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top