Я хочу напечатать, какой пользователь является автором подкатегории, но когда я делаю dd (). Я получаю значение NULL.
Модель пользователя:
<?php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use Notifiable;
use HasRoles;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password'
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be mutated to dates.
*
* @var array
*/
protected $dates = [
'created_at',
'updated_at'
];
}
Категория модели:
class Category extends Model
{
public function subcategory()
{
return $this->hasMany(Subcategory::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
}
Модель подкатегории:
class Subcategory extends Model
{
public function category()
{
return $this->belongsTo(Category::class);
}
public function user()
{
return $this->belongsTo(User::class);
}
}
Функция, в которой я хочу напечатать автора подкатегории.
public function show(Category $category)
{
$subcategories = $category->subcategory->user->name;
dd($subcategory);
return view('subcategories', compact('subcategories '));
}
Вывод DD: NULL также, когда я делаю dd($category)
В «отношениях» я вижу свою «подкатегорию», но нигде нет отношения «пользователя». Пожалуйста, помогите: /
Миграция:
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->text('description');
$table->timestamps();
});
}
public function up()
{
Schema::create('subcategories', function (Blueprint $table) {
$table->increments('id');
$table->string('description')->nullable();
$table->foreign('category_id')->references('id')->on('categories')
->onUpdate('cascade')->onDelete('cascade');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
$table->timestamps();
});
}
Просьба:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ItemRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
View
@foreach($subcategories as $subcategory)
<li>{{$subcategory->user->name}}</li>
@endforeach