【发布时间】:2021-07-15 06:18:34
【问题描述】:
我真的需要解决这个问题。我正在使用 Laravel 8。
我正在尝试从 kategoris (category) 表中获取 nama (name) 字段并将其显示在 produks (产品)表。
最后用JS代码查看Blade
@extends('back.index')
@section('content')
<main>
<div class="container-fluid">
<h1 class="mt-4">Produk</h1>
<ol class="breadcrumb mb-4">
<li class="breadcrumb-item"><a href={{ route('home') }}>Dashboard</a></li>
<li class="breadcrumb-item active">Produk</li>
</ol>
<div class="card mb-4">
<div class="card-body">
DataTables is a third party plugin that is used to generate the demo table below. For more information about DataTables, please visit the
<a target="_blank" href="https://datatables.net/">official DataTables documentation</a>
.
</div>
</div>
<div class="card mb-4">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
DataTable Example
@auth
<a href="{{ route('produks.create') }}" class="btn btn-info float-right">Tambah Produk</a>
@endauth
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="produks-table" width="100%" cellspacing="0">
<thead>
<tr>
<th>Kode</th>
<th>Nama</th>
<th>Kategori</th>
<th>Updated At</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Kode</th>
<th>Nama</th>
<th>Kategori</th>
<th>Updated At</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</main>
@endsection
@push('scripts')
<script>
$(function() {
$('#produks-table').DataTable({
processing: true,
serverSide: true,
ajax: 'produk/json',
columns: [
{ data: 'kode', name: 'kode' },
{ data: 'nama', name: 'nama',
fnCreatedCell: function (nTd, sData, oData, iRow, iCol) {
$(nTd).html("<a href='/kategoris/"+oData.id+"'>"+oData.nama+"</a>");
}
},
{ data: 'kategori', name: 'kategori.nama'},
{ data: 'updated_at', name: 'updated_at'},
]
});
});
</script>
@endpush
我已经寻找了几天的解决方案,但仍然收到此错误消息。
产品型号
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(Kategori::class, 'kategori_id');
}
}
类别模型
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(Produk::class);
}
}
产品控制器
namespace App\Http\Controllers;
use App\Models\Produk;
use Illuminate\Http\Request;
use RealRashid\SweetAlert\Facades\Alert;
use Yajra\Datatables\DataTables;
class ProdukController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function json()
{
return Datatables::of(Produk::with('Kategori')->get())->make(true);
}
public function index()
{
return view('back.produk.show');
}
}
【问题讨论】:
标签: laravel model-view-controller datatables relationship