0
私は2つのテーブル(プロジェクトとクライアント)を持っています。クライアントは多くのプロジェクトを持つことができます。プロジェクトは1つのクライアントに属します。雄弁を使って2つのテーブルからクエリを取得する
テーブルスキーマ: クライアント:
Schema::create('clients', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('contact_person');
$table->timestamps();
});
プロジェクト:ここ
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->text('description');
$table->date('due');
$table->integer('client_id')->unsigned();
$table->foreign('client_id')->references('id')->on('clients');
$table->timestamps();
});
はモデルです: クライアントモデル:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Client extends Model
{
public function projects()
{
return $this->hasMany('App\Project');
}
}
プロジェクトモデル:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Project extends Model
{
public function tasks()
{
return $this->hasMany('App\Task');
}
public function client()
{
return $this->belongsTo('App\Client');
}
}
ここにコントローラがあります。 ClientsController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ClientsController extends Controller
{
public function index()
{
$clients = Client::has('projects')->get();
return $this->hasMany('projects');
}
}
ProjectsController
<?php
namespace App\Http\Controllers;
use App\Project;
use App\Client;
use Illuminate\Http\Request;
class ProjectsController extends Controller
{
public function index()
{
$projects = Project::find(1)->projects;
return $projects->all();
}
public function store(Request $request)
{
return $request->all();
}
}
Project.vue
<ul>
<li v-for="project in projects">
{{ project.name }}
// client's name here
</li>
</ul>
私はそれに応じて、すべての顧客の名前とそのプロジェクトの名前が表示されますクエリを返すようにしたいです。私が今取得できるのは、プロジェクト名だけです。ありがとうございました。