0
我有2个表格(项目和客户端)。客户可以有许多项目。一个项目属于一个客户。使用口才从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>
我想回到一个查询,将相应地显示所有客户的名字和他们的项目名称。我现在所能得到的只是项目名称。谢谢。