LaravelのEloquentORMが関係のデータを返すようにするのに本当に問題があります。
私の移行(データベーススキーマ):
Schema::table('users', function($table)
{
$table->engine = 'InnoDB';
$table->create();
$table->increments('id')->unsigned();
$table->string('firstname');
$table->string('surname');
$table->string('email')->unique();
$table->string('password')->unique();
$table->string('phone')->nullable();
$table->text('about')->nullable();
$table->timestamps();
});
Schema::table('files', function($table)
{
$table->engine = 'InnoDB';
$table->create();
$table->increments('id')->unsigned();
$table->string('filename');
$table->string('title');
$table->text('description')->nullable();
$table->string('keywords')->nullable();
$table->integer('category_id')->unsigned();
$table->integer('file_type_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->timestamps();
});
モデル
File.php
<?php
class File extends Eloquent
{
public static $timestamps = true;
public function user()
{
return $this->belongs_to('User');
}
}
User.php
<?php
class User extends Eloquent
{
public static $timestamps = true;
public function files()
{
return $this->has_many('File');
}
}
ルート.php
// everything else in my routes.php is as it was when downloaded
Route::get('users', function()
{
echo '<pre>';
// this works
$users = User::all();
print_r($users);
// this doesn't work
print_r($users->files);
// this doesn't work
$files = User::find(1)->files;
print_r($files);
});
エラー:
未処理の例外
メッセージ:
オブジェクト以外の場所のプロパティを取得しようとしています:
C:\ wamp \ www \ l3_mlib \ application \ routers.php、51行目スタックトレース:
#0 C:\ wamp \ www \ l3_mlib \ laravel \ laravel.php(42):Laravel \ Error :: native(8、'Pを取得しようとしています...'、'C:\ wamp \ www\l3_。。 。'、51)#1 C:\ wamp \ www \ l3_mlib \ application \ routers.php(51):Laravel {closure}(8、' try to get p ...'、' C:\ wamp \ www \ l3 _...'、51、Array)#2 [内部関数]:{closure}()#3 C:\ wamp \ www \ l3_mlib \ laravel \ routing \ route.php(163):call_user_func_array(Object(Closure) 、配列)#4 C:\ wamp \ www \ l3_mlib \ laravel \ routing \ route.php(124):Laravel \ Routing \ Route-> response()#5 C:\ wamp \ www \ l3_mlib \ laravel\laravel。 php(167):Laravel \ Routing \ Route-> call()#6 C:\ wamp \ www \ l3_mlib \ public \ index.php(34):require('C:\ wamp \ www \ l3 _...' )#7{メイン}
私は何が間違っているのですか?