PHP Laravel eloquent relationships не работает связь one to one

213
17 декабря 2017, 10:57

Таблица водителей:

  public function up(){
     Schema::create('drivers', function (Blueprint $table) {
        $table->collation = 'utf8_general_ci';
        $table->charset = 'utf8';
        $table->increments('id');
        $table->integer('car_id')->unsigned()->nullable();
        $table->foreign('car_id')->references('id')->on('cars');
        $table->string('name',20);
        $table->string('surname',20);
        $table->string('father',20);
        $table->string('phone',13)->unique();
        $table->integer('expirience');
        $table->text('description');
        $table->integer('number')->unsigned()->default(0);
        $table->boolean('has_car');
        $table->boolean('is_worker');
        $table->boolean('is_new');
        $table->engine = 'MyISAM';
    });

Модель водителей

 <?php
 namespace App\Models;
 use App\Models\Car;
 use App\Models\Mod;
 use App\Models\Color;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Lang;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Facades\Validator;
 class Driver extends Model {
     protected $table = 'drivers';
     public $timestamps = false;
     protected $fillable = [
       'id', 'name', 'surname', 'father', 'phone',
       'expirience', 'number', 'has_car', 'is_worker', 
       'is_new', 'car_id',
  ];
  public function car() {
      return $this->belongsTo(Car::class);
  }
}

Таблица машин:

 public function up(){
    Schema::create('cars', function (Blueprint $table) {
        $table->collation = 'utf8_general_ci';
        $table->charset = 'utf8';
        $table->increments('id');
        $table->string('number',15)->unique();
        $table->enum('body', ['sedan', 'hatchback', 'universal', 'minivan', 
                 'microbus',]);
        $table->boolean('climat');
        $table->string('color',25)->nullable();
        $table->foreign('color')->references('title')->on('colors');
        $table->integer('model_id')->unsigned()->nullable();
        $table->foreign('model_id')->references('id')->on('models');
        $table->engine = 'MyISAM';
    });
}

Модель машин:

namespace App\Models;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Validator;
class Car extends Model {
   protected $table = 'cars';
   public $timestamps = false;

    protected $fillable = [
       'id', 'color', 'number', 'body', 'climat',
       'model_id',
    ];
    public function driver() {
        return $this->hasOne(Driver::class);
    }
 }

При вызове $driver->car - работает, при вызове $car->driver - "Undefined "property: stdClass::$driver". В чем проблема? Подскажите, пожалуйста.

Answer 1

Все, разобрался...Я при вызове $car использовал DB::table, а не Eloquent

READ ALSO
Передача out маркера

Передача out маркера

Спецификация пакетов usb твердит о передаче маркера! С устройством работаю как с файлом то есть ReadFile WriteFileКак отправить устройству Маркер...

214
Создать собственный контролл для Torque 3D

Создать собственный контролл для Torque 3D

Я хочу создать свой собственный контролл, для использования в Torque 3DСоздать сам класс я могу на основе существующих, это не проблема, но я не понимаю,...

216