Я получил эту форму
<div class="form-group">
<label for="clientId">Client</label>
<select name="client_id" class="form-control">
@if(count($client) == 0)
<option>There are no clients.</option>
@else
@foreach($client as $client)
<option value="{{$client->client_id}}">{{$client->client_name}}</option>
@endforeach
@endif
</select>
</div>
<div class="form-group">
<button type="submit" class="btn btn-success">Submit</button>
</div>
, которая отправляет данные на этот контроллер
public function store(Request $r)
{
$validatedData = $r->validate([
'proj_title' => 'required|max:100',
'client_id' => 'required',
'proj_desc' => 'required',
]);
$currentUserId = Auth::user()->user_id;
$currentUser = User::find('username')->name;
$r['created_by'] = $currentUser;
$project = Project::create($r->all());
return redirect('/projects')->with('store','');
}
Я установил отношения один-ко-многим от клиента к проекту.
Мое намерение состоит в том, чтобы вы передали client_id, вставили его в базу данных, а затем в индекс, который видите client_name относительно этого client_id.
Это мой индекс
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Project Id</th>
<th>Title</th>
<th>Description</th>
<th>Client</th>
<th>Created by</th>
<th>Created on</th>
@if (Auth::user()->role=='admin')
<th>Admin</th>
@endif
</tr>
</thead>
<tbody class="">
@foreach ($project as $project)
<tr>
<td>{{$project->proj_id}}</td>
<td>{{$project->proj_title}}</td>
<td>{{$project->proj_desc}}</td>
<td>{{$client->client_name}}</td>
<td>{{$project->created_by}}</td>
<td>{{$project->created_at}}</td>
Это мои отношения: Модель проекта:
class Project extends Model
{
protected $primaryKey = 'proj_id';
protected $fillable = ['proj_title','proj_desc','client_id','created_by'];
public function user()
{
return $this->hasOne('App\User');
}
public function task()
{
return $this->hasMany('App\Task');
}
public function client()
{
return $this->hasOne('App\Client');
}
}
Клиент:
class Client extends Model
{
protected $primaryKey = 'client_id';
protected $fillable= ['client_name','client_id'];
public function project()
{
return $this->hasOne('App\Project','proj_id');
}
}
Как я понял прямо сейчас, я получаю "Свойство [client_name] не существует в этом экземпляре коллекции. (Представление: D: \ Programas \ xampp \ htdocs \ test5 \ resources \ views \ projects \ index.blade.php) "
Отношения до сих пор меня немного смущают, извините, если это очень нубский вопрос.
Заранее спасибо