category_id
- это просто столбец / атрибут в таблице / модели продуктов, который в основном является целым числом, вам необходимо получить доступ к названию категории из отношения belongsTo
. Убедитесь, что category_id
внешний ключ, ссылающийся на идентификатор из таблицы категорий в таблице миграции продуктов
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('short-description');
$table->text('long-description');
$table->integer('stock');
$table->decimal('price', 8, 2);
$table->decimal('discount', 8, 2);
$table->enum('status', ['available', 'sale']);
$table->unsignedBigInteger('category_id');
$table->foreign('category_id')->references('id')->on('categories');
$table->timestamps();
});
И что у вас есть отношение belongsTo
на Product
модели
public function category()
{
return $this->belongsTo('App\Category');
}
Теперь выможет получить доступ к имени с помощью чего-то подобного, в зависимости от того, как вы назвали столбец name
в таблице категорий
protected function getProduct()
{
return DataTables::of(Product::query())
->addColumn('category_name', function(Product $product) {
return $product->category->category_name;
})
->addColumn('created_at', function(Product $product) {
return $product->created_at->diffforhumans();
})
->toJson();
}
Надеюсь, это поможет