Laravel 5一对多问题

时间:2015-11-08 23:30:52

标签: laravel-5 eloquent one-to-many

我已经关注了关于人际关系的所有Laravel文档,但我仍然遇到问题。

我有两张桌子:

资格 -ID -码 -标题 级细节

组件 -ID -名称 -qualification_id

每个资格证书都有许多组件,每个组件都有一个资格证书。

这是我的资格模型:

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Qualification extends Model {

   protected $fillable = [

        'code',
        'title',
        'type',
        'level',
        'details',

   ];

   protected $table = 'qualifications';
   public $timestamps = true;

    public function component()
    {
        return $this->hasMany('App/Component');
    }
}

组件模型:

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Component extends Model {

    protected $fillable = [

        'name',
        'qualification_id',

    ];

    protected $table = 'components';
    public $timestamps = true;

    public function qualification()
    {
        return $this->belongsTo('App\Qualification');

    }

}

我想在查看资格时显示相关单位。

资格控制员:

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Component;
use App\Qualification;
use App\Http\Requests\QualificationRequest;

class QualificationController extends Controller {

public function show($id)
{
    $qualification = Qualification::find($id);

    $component = Qualification::find(1)->component;

    return view('qualifications.show', compact('qualification','component'));
}

以下是视图&#39; qualifications.show'

@extends('app')

@section('content')

    <h1>{{ $qualification->title }} </h1>

    <div class="body">{{ $qualification->code }}</div>

    <h2> Units </h2>

    @foreach ($component as $component)


        <div class="body"> {{ $component->name }} </div>

    @endforeach

@stop

但我一直收到错误:

Model.php第893行中的FatalErrorException:Class&#39; App / Component&#39;找不到

请有人帮忙吗?我已经在这里待了几天,读了我能找到的所有东西,但无济于事,我失去了希望。

谢谢,

珍妮。

1 个答案:

答案 0 :(得分:0)

我怀疑:

return $this->hasMany('App/Component');

当你定义另一个时:

return $this->belongsTo('App\Qualification');

它应该&#39; \&#39;就目前我所记得的。 而且,$component = Qualification::find(1)->component()->get();所以,它将是一个查询结果数组,而不是一些查询生成器。