Я получил эту форму, в которой вы выбираете клиента, и он вставляет client_id в БД
<div class="form-group">
<label for="clientId">Client</label>
<select name="client_id" class="form-control">
@foreach($clients as $client)
<option value="{{$client->client_id}}">
{{$client->client_name}}
</option>
@endforeach
</select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-success">Submit</button>
</div>
Мой контроллер проекта это
public function index()
{
return view('projects.index', [
'projects' => Project::all(),
'client' => Client::all(),
]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
if (Auth::user()->role != 'admin') {
return redirect()->back();
} else {
return view('projects.create',[
'project' => new Project,
'clients' => Client::all(),
]);
}
}
Итак, я хочу отобразить имя клиента из client_id для каждого проекта, это мой индекс
<tbody class="">
@foreach ($projects as $project)
<tr>
<td>{{ $project->proj_id }}</td>
<td>{{ $project->proj_title }}</td>
<td>{{ $project->proj_desc }}</td>
<td>{{ $project->client->client_name }}</td>
<td>{{ $project->created_by }}</td>
<td>{{ $project->created_at }}</td>
@if (Auth::user()->role == 'admin')
<td>
Модель клиента:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Client extends Model
{
protected $primaryKey = 'client_id';
protected $fillable = ['client_name','client_id'];
public function projects () {
return $this->hasMany('App\Project');
}
}
Модель проекта:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Project extends Model
{
protected $primaryKey = 'proj_id';
protected $fillable = [
'proj_title',
'proj_desc',
'client_id',
'created_by'
];
public function clients (){
return $this->hasOne('App\Client');
}
}
Итак, как я могу получить данные из моего индекса? Я пытался, как это в документации, но я всегда получаю сообщение об ошибке.
Заранее спасибо.