2016-06-22 12 views
2

laravelモデルクラスを使用してテーブルに挿入しようとしていますが、変数で指定されたテーブルに挿入できる必要があります。これはどうすればできますか?私はバニラPHPのmoethodとlaravelのファサードの方法を試してみましたが、両方は私にエラーを与えた:(laravel)変数名のモデルを使用しているクエリビルダ

$modelName = "model"; 

# this works no problem: 
$model = new model(); 

# this blows up: 
$model = new $modelName(); 

# this blows up: 
$model::create($request->all()); 

laravelによって与えられたエラー:

FatalThrowableError in Controller.php line 44: 
Class 'model' not found 
+0

'$ model = new $ modelName();'はインスタンス化するのを忘れました – Ohgodwhy

+0

@Ohgodwhyそれをキャッチしてくれてありがとう。質問を更新しましたが、エラーは変更されませんでした。 –

+0

'$ modelName = model :: class'はどうですか? – Burak

答えて

5

あなたは完全修飾クラス名を入れる必要があります。

完全修飾名(名前空間 の接頭辞を持つクラス名)を使用する必要があります。

$modelName = "App\\User"; // assuming User is located in the App namespace 
$model = new $modelName(); 

あなたはそれhereについての詳細を学ぶことができます。

+0

ありがとう!それはうまくいった。私はクラスパスが含まれている場合でも、常にこの場合に明示的にする必要がありますクラスパスを含むと思いますか? –

+0

また、フォワードスラッシュの代わりにバックスラッシュを使用するのはなぜですか? –

+1

私は自分の答えを編集して、PHPドキュメントの関連部分へのリンクを含めました。 1)はい、そうです。 2)PHPで使用されているものですか? :) – Doom5

関連する問題