こんにちは、私は Laravel を初めて使用し、Laravel Lumen で RESTFul api を作成しようとしています。laravel と Lumen をインストールしました。バージョンは次のとおりです。
Laravel Framework version Lumen (5.2.6) (Laravel Components 5.2.*)
さらに、DB 列名をマッピングするためにhttps://github.com/jarektkaczyk/eloquenceをインストールしました。
連絡先モデル
namespace App;
use Illuminate\Database\Eloquent\Model;
use Sofa\Eloquence\Eloquence; // base trait
use Sofa\Eloquence\Mappable; // extension trait
class Contacts extends Model {
use Eloquence, Mappable;
protected $table = 'contacts';
protected $primaryKey = 'idcontacts';
protected $visible = ['firstname', 'lastname','idorganization'];
protected $maps = [
'firstname'=> 'firstName',
'lastname' => 'lastName'
];
public function organization() {
return $this->hasOne('App\Organization','idorganization');
}
}
組織モデル
namespace App;
use Illuminate\Database\Eloquent\Model;
class Organization extends Model {
protected $table = 'organization';
protected $primaryKey = 'idorganization';
protected $visible = ['organization_name', 'website','website','phone','num_employes','industry'];
public function contacts() {
return $this->belongsTo('App\Contacts', 'idorganization');
}
}
連絡先のコントローラーは次のようになります
namespace App\Http\Controllers;
use App\Contacts;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ContactsController extends Controller
{
public function getAll() {
$contacts = Contacts::all();
return response()->json($contacts);
}
}
idorganization
しかし、組織からのモデル列が応答に取り込まれません。
私はさらに
$contacts = Persona::with('organization')->all();
しかし、それはエラーを返します
Call to undefined method Sofa\Eloquence\Query\Builder::all()
連絡先モデルと特性を削除しSofa\Eloquence
ても、まだ機能しません。
明らかな何かが欠けていることを教えてください
関係がなければ、次のような応答が得られます
[
{
"firstname":"Abhik",
"lastname":"Chakraborty",
"idorganization":"1"
},
{
"firstname":"John",
"lastname":"Martin"
"idorganization":"1"
}
]
期待される結果は
[
{
"firstname":"Abhik",
"lastname":"Chakraborty",
"organization":{
"organization_name": "foo"
"website": "bar"
..................
}
},
{
"firstname":"John",
"lastname":"Martin"
"organization":{
"organization_name": "foo"
"website": "bar"
...............
}
}
]