Похоже, что у вас тоже неправильное пространство имен, попробуйте использовать App\ModelName
вместо App\Models\ModelName
.И используйте английский для именования функций / классов:)
Проверьте, правильно ли используются ваши внешние ключи.Если вы хотите, чтобы он работал только из коробки, таблица orders
должна иметь client_id
в качестве внешнего ключа и id
в качестве первичного ключа, тогда как таблица clients
должна иметь первичный ключ id
.Тогда это решение будет работать:
public function order(){
return $this->hasOne('App\Order');
}
через https://laravel.com/docs/5.8/eloquent-relationships
РЕДАКТИРОВАТЬ: для лучшего понимания :) в create_orders_table
миграция:
$table->bigIncrements('id');
$table->unsignedBigInteger('client_id');
$table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade');
Более того я могуНе вижу причины, по которой у вашего клиента может быть только один заказ.Я бы использовал в Client
модели:
public function orders(){
return $this->hasMany('App\Order');
}
И в Order
модели:
public function client(){
return $this->belongsTo('App\Client');
}
Таким образом, ваш клиент сможет иметь несколько заказов, и заказ будетесть только один назначенный клиент.