PHP code example of rudiwer / rwtable-laravel
1. Go to this page and download the library: Download rudiwer/rwtable-laravel library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rudiwer / rwtable-laravel example snippets
return [
'routes' => [
'enabled' => true,
'prefix' => 'admin',
'name_prefix' => 'admin.',
'middleware' => ['web', 'auth'],
],
'field_aliases' => [
// optional alias map for filter/sort safety
// 'status_description' => 'statuses.description',
],
'security' => [
'allowed_field_pattern' => '/^[A-Za-z0-9_\.]+$/',
],
];
return [
'routes' => [
'enabled' => true,
'prefix' => 'admin',
'name_prefix' => 'admin.',
'middleware' => ['web', 'auth', 'verified'],
],
'field_aliases' => [
'status_label' => 'statuses.description',
'priority_label' => 'priorities.description',
'owner_name' => 'users.name',
],
'security' => [
'allowed_field_pattern' => '/^[A-Za-z0-9_\.]+$/',
],
];
use App\Actions\Admin\Base\RwTableAction;
use App\Models\Task;
use Illuminate\Http\Request;
use Inertia\Response;
public function index(Request $request): Response
{
return RwTableAction::handle(
$request,
Task::class,
'Admin/Task/Index',
['id', 'title', 'status'],
25,
['statusOptions' => $this->statusOptions()],
function ($query): void {
$query->where('school_id', auth()->user()->school_id);
}
);
}
use App\Models\Task;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
public function data(Request $request): JsonResponse
{
$query = Task::query();
$global = trim((string) $request->input('global', ''));
if ($global !== '') {
$query->where(function ($builder) use ($global): void {
$builder
->orWhere('title', 'like', "%{$global}%")
->orWhere('owner', 'like', "%{$global}%")
->orWhere('status', 'like', "%{$global}%");
});
}
$sortField = (string) $request->input('sortField', 'id');
$sortOrder = strtolower((string) $request->input('sortOrder', 'asc')) === 'desc' ? 'desc' : 'asc';
$perPage = max(1, min(100, (int) $request->input('rowsPerPage', 25)));
$page = max(1, (int) $request->input('page', 1));
$paginated = $query
->orderBy($sortField, $sortOrder)
->paginate($perPage, ['*'], 'page', $page);
return response()->json([
'data' => $paginated->items(),
'total' => $paginated->total(),
'current_page' => $paginated->currentPage(),
'last_page' => $paginated->lastPage(),
]);
}
use App\Http\Controllers\Controller;
use App\Models\Task;
use Illuminate\Http\Request;
use Rwsoft\RwTableLaravel\Actions\RwTableAction;
class TaskController extends Controller
{
public function index(Request $request)
{
return RwTableAction::handle(
$request,
Task::class,
'Admin/Task/Index',
['id', 'title', 'status'],
25,
['statuses' => []]
);
}
public function inlineUpdate(Request $request, int $id)
{
return RwTableAction::update(
$request,
Task::class,
$id,
['title', 'status', 'priority', 'tags']
);
}
public function inlineCreate(Request $request)
{
return RwTableAction::create(
$request,
Task::class,
['title', 'status', 'priority', 'tags', 'index']
);
}
public function inlineDelete(Request $request, int $id)
{
return RwTableAction::destroy($request, Task::class, $id);
}
}
bash
php artisan vendor:publish --tag=rwtable-config
php artisan vendor:publish --tag=rwtable-migrations
php artisan vendor:publish --tag=rwtable-lang
bash
php artisan migrate
text
lang/vendor/rwtable/{locale}/rwtable.php