я работаю на ремонт платформе с использованием Laravel 5.2 Я судимые много вещи, но я не могу заставить его работать:/надеется, что кто-то может помочь мнеОтношений на Laravel
это мой ремонт стол
Schema::create('repairs', function (Blueprint $table) {
$table->increments('id');
$table->integer('brand');
$table->foreign('brand')->references('id')->on('brands');
$table->integer('equipment');
$table->foreign('equipment')->references('id')->on('equips');
$table->string('model');
$table->string('description');
$table->integer('status');
$table->foreign('status')->references('id')->on('statuses');
$table->string('code');
$table->string('notes');
$table->timestamps();
});
Тогда у меня есть контроллер
public function index()
{
$repairs = repair::all();
return view('repair.index_repair',compact('repairs'));
}
и это моя модель
class Repair extends Model
{
protected $fillable = ['brand','equipment','model','description','status','code'];
public function brand()
{
return $this->belongsTo('App\brands', 'id');
}
, когда я пытаюсь напечатать бренды имя, как этот
@foreach($repairs as $repair)
<tr>
<th>{{$repair->brand->name}}</th>
<th>{{$repair->equipment}}</th>
<th>{{$repair->model}}</th>
<th>{{$repair->description}}</th>
<th>{{$repair->status}}</th>
<th>{{$repair->code}}</th>
<th>
{!! Form::open(array('route'=>['repair.destroy',$repair->id],'method'=>'DELETE')) !!}
{{ link_to_route('repair.edit','Edit',[$repair->id],['class'=>'btn btn-primary']) }}
|
{!! Form::button('Delete',['class'=>'btn btn-danger','type'=>'submit']) !!}
{!! Form::close() !!}
</th>
</tr>
@endforeach
Я получил эту ошибку «Попытка получить свойство не-объекта». Это очень общая ошибка, и я вижу некоторую тему с людьми, имеющими ту же проблему, и я пытаюсь использовать их решение, но не работает. Я не знаю, что делать дальше. Может ли кто-нибудь мне помочь?
Спасибо
UPDATE
Теперь у меня есть это:
Контроллер:
public function index()
{
$repairs = repair::with('brands')->get();
return view('repair.index_repair',compact('repairs'));
}
Ремонт Модель:
class Repair extends Model
{
protected $fillable = ['brand','equipment','model','description','status','code'];
public function brands()
{
return $this->hasOne('App\brands','brand','id');
}
}
Бренды Модель:
class brands extends Model
{
protected $fillable = ['name'];
public function repair() {
return $this->belongsTo('App\Repair','brand','id');
}
}
, и это дает мне эту ошибку «QueryException в connection.php строке 729: SQLSTATE [42S22]: Column не найдено: 1054 Неизвестный столбец «brands.brand» в разделе «where clause» (SQL: select * from brands
, где brands
. brand
в (1, 2))»
Я стараюсь все ...:/
Пожалуйста, пост ** полного ** ошибки здесь – shalvah
«ErrorException в 02cdd3901ececc3975bc9d2afd31a31c4d299ac2.php линии 28: Попытки получить свойство не-объект (Вид: C : \ wamp6 4 \ www \ fdaw \ resources \ views \ repair \ index_repair.blade.php) «это полная ошибка .. все еще работает:/ –
Не могу положить ее на работу:/может ли кто-нибудь помочь? –