Laravel两种模式之间的关系

I am struggling with working with relationships right now and would like some help as for how to make this relationship work. I am using Laravel.

Lets say you have a staff model that looks like so:

Staff.php

class Staff extends \Eloquent {
    protected $fillable = [];

    public function status()
    {
        return $this->belongsTo('Staff_status');
    }
}

The database table for the staff is as follows:

Table Name: staff
Fields: id, staffer_name, status_id

You also have a staff status model represented below:

Staff_statuses.php

class Staff_status extends Eloquent {

    public function staff()
    {
        return $this->hasMany('Staff');
    } 

}

You also have a staff database table like so:

Table Name: staff_statuses
Fields: id, status_name

However when I try and load the staff controller index method it says class Staff_status is not found.

Any idea why?

You have used Staff_statuses.php as the name of your model but you are using Staff_status in the class name and thus you are calling it using Staff_status from your controller as well. This is the problem.

Change the file name to match the class name. For example, use something like this:

// StaffStatus.php
class StaffStatus extends Eloquent{

    protected $table = 'staff_statuses';

    public function staff()
    {
        return $this->hasMany('Staff');
    } 
}

// Staff.php
class Staff extends Eloquent {

    protected $table = 'staff';

    protected $fillable = [];

    public function status()
    {
        return $this->belongsTo('StaffStatus');
    }
}

In the controller you may use something like this:

$staffStatus = StaffStatus::all();
$staff = Staff::all();

namespace App;

use Illuminate\Database\Eloquent\Model;

class Photo extends Model {

public function imageable()
{
    return $this->morphTo();
}

}

class Staff extends Model {

public function photos()
{
    return $this->morphMany('App\Photo', 'imageable');
}

}

class Product extends Model {

public function photos()
{
    return $this->morphMany('App\Photo', 'imageable');
}

}