См. спецификацию языка Java , раздел 6.6.1. Определение доступности
В нем указано
В противном случае, если член или конструктор объявлен
private
, доступ разрешен тогда и только тогда, когда он встречается в пределах тело класса верхнего уровня (§7.6), которое включает объявление члена или конструктора.Нажмите ссылку выше для получения более подробной информации. Поэтому ответ: потому что Джеймс Гослинг и другие авторы Java решили, что так оно и есть.
Вы можете использовать этот код
public function index()
{
$products = Product::with('category')->get();
return view('product' ,compact('products'));
}
В блейде
@foreach($products as $product)
{{$product->name}}
{{$product->category->name ?? ''}}
//or
@if ($product->category)
$product->category->name
@endif
@endforeach
Также, если в таблице проекта внешний ключ не равен category_id
. В вашем случае
public function category()
{
return $this->belongsTo('App\Category', 'category');
}