如何在 Laravel 中获取 "catagory name"?
How to get the "catagory name" in Laravel?
如何让“类别名称”在产品中显示 table 而不是“category_id”?
我已经尝试为此组合任何解决方案。但是还是解决不了这个问题。
我很想听听这里的大师们的其他建议。
类别模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Kategori extends Model
{
use HasFactory;
protected $casts = [
'updated_at' => 'datetime:d/m/Y, H:i:s'
];
public function Kategori()
{
return $this->hasMany('App\Models\Produk');
}
}
产品型号
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Produk extends Model
{
use HasFactory;
protected $casts = [
'updated_at' => 'datetime:d/m/Y, H:i:s'
];
public function Produk()
{
return $this->belongsTo('App\Models\Kategori', 'kategori_id');
}
}
类别Table
产品Table
Product Controller >>>> 在我看来可能是我在这里的概率,但不太确定。
<?php
namespace App\Http\Controllers;
use App\Models\Produk;
use RealRashid\SweetAlert\Facades\Alert;
use Yajra\Datatables\DataTables;
use Illuminate\Http\Request;
class ProdukController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function json(){
return Datatables::of(Produk::all())->make(true);
}
public function index(){
return view('back.produk.show');
}
}
你应该使用:
public function json(){
return Datatables::of(Produk::with('Kategori')->all())->make(true);
}
我建议对方法名称使用驼峰命名法。我不确定 Datatables 将如何处理这种情况。
在您的 ProdukController 中,您需要传递以下代码。
$result = Produk::with('Produk')->get();
当你 dd($result); 时,你应该在 relations 数组属性中看到相关模型。
要从那里访问关系的属性,只需
$result->Produk->catagory_name
使用您的关系传递另一个模型
public function json(){
return Datatables::of(Produk::with('produk')->get())->make(true);
}
它的名字是 $produks,你可以访问它
$produk->produk->nama;
作为旁注,请将您的关系命名为其他模型的名称。
例如,在 Kategori class 中,与 Produk 的关系应命名为 produks(这是一个 hasMany 关系),而不是 Kategori。同样,在 Produk class 中,与 Kategori 的关系被命名为 kategori(),您可以从上面的答案中访问它
$produk->kategori->nama;
如何让“类别名称”在产品中显示 table 而不是“category_id”?
我已经尝试为此组合任何解决方案。但是还是解决不了这个问题。 我很想听听这里的大师们的其他建议。
类别模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Kategori extends Model
{
use HasFactory;
protected $casts = [
'updated_at' => 'datetime:d/m/Y, H:i:s'
];
public function Kategori()
{
return $this->hasMany('App\Models\Produk');
}
}
产品型号
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Produk extends Model
{
use HasFactory;
protected $casts = [
'updated_at' => 'datetime:d/m/Y, H:i:s'
];
public function Produk()
{
return $this->belongsTo('App\Models\Kategori', 'kategori_id');
}
}
类别Table
产品Table
Product Controller >>>> 在我看来可能是我在这里的概率,但不太确定。
<?php
namespace App\Http\Controllers;
use App\Models\Produk;
use RealRashid\SweetAlert\Facades\Alert;
use Yajra\Datatables\DataTables;
use Illuminate\Http\Request;
class ProdukController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function json(){
return Datatables::of(Produk::all())->make(true);
}
public function index(){
return view('back.produk.show');
}
}
你应该使用:
public function json(){
return Datatables::of(Produk::with('Kategori')->all())->make(true);
}
我建议对方法名称使用驼峰命名法。我不确定 Datatables 将如何处理这种情况。
在您的 ProdukController 中,您需要传递以下代码。
$result = Produk::with('Produk')->get();
当你 dd($result); 时,你应该在 relations 数组属性中看到相关模型。
要从那里访问关系的属性,只需
$result->Produk->catagory_name
使用您的关系传递另一个模型
public function json(){
return Datatables::of(Produk::with('produk')->get())->make(true);
}
它的名字是 $produks,你可以访问它
$produk->produk->nama;
作为旁注,请将您的关系命名为其他模型的名称。 例如,在 Kategori class 中,与 Produk 的关系应命名为 produks(这是一个 hasMany 关系),而不是 Kategori。同样,在 Produk class 中,与 Kategori 的关系被命名为 kategori(),您可以从上面的答案中访问它
$produk->kategori->nama;