在 Laravel Yajra DataTables 中显示图像,通常涉及到从数据库中获取图像路径,并在前端将其渲染为图像元素。以下是实现这一功能的基础概念、步骤和相关代码示例。
render
函数来生成图像元素。User
模型)// User.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $fillable = ['name', 'email', 'avatar_path'];
}
UserController
)// UserController.php
namespace App\Http\Controllers;
use App\Models\User;
use Yajra\DataTables\DataTables;
class UserController extends Controller
{
public function index()
{
$users = User::all();
return view('users.index', compact('users'));
}
public function getData(Request $request)
{
$users = User::query();
return DataTables::of($users)
->addColumn('avatar', function ($user) {
return '<img src="' . asset($user->avatar_path) . '" width="50" height="50">';
})
->rawColumns(['avatar'])
->make(true);
}
}
users/index.blade.php
)<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Users</title>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.25/css/jquery.dataTables.min.css">
</head>
<body>
<table id="users-table" class="display" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Avatar</th>
</tr>
</thead>
</table>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function() {
$('#users-table').DataTable({
processing: true,
serverSide: true,
ajax: "{{ route('users.getData') }}",
columns: [
{ data: 'name' },
{ data: 'email' },
{ data: 'avatar' }
]
});
});
</script>
</body>
</html>
这种技术在需要在前端显示用户头像、产品图片等场景中非常有用。通过 DataTables 可以方便地管理和展示大量数据,并且可以自定义列的渲染方式。
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云