Table Column: URL Link to Another Resource

Table Column: URL Link to Another Resource

2024-10-17 وقت القراءه : 1 دقائق

عند عرض المدفوعات في صفحة payment او عرض اي بيانات من صفحة أخرى، عند الضغط على اي صف او اسم او منتج، فإنه يتم تحويلنا لصفحة التعديل الخاصه بهذا العنصر.

على سبيل المثال عند الضغط على اسم المنتج product 1 فإنه يتم تحويلنا للصفحة التعديل الخاصه بعملية الشراء، وكذلك عند الضغط على اسم الشخص الذي قام بعملية الشراء، يتم تحويلنا أيضا لصفحة تعديل عملية الشراء.

ماذا لو أردنا عند الضغط على إسم المنتج أن يقوم بتحويلنا لصفحة تعديل المنتج، وعند الضغط على اسم المستخدم او البريد الإلكتروني الخاص به، أن يتم تحويلنا لصفحة تعديل المستخدم.

للقيام بذلك نستخدم الدالة url حيث تأخذ callbackfunction ومن ثم نحدد resource مثلا ProductResource, UserResource ومن ثم نقوم بتمرير object من العنصر المراد التعديل عليه

Tables\Columns\TextColumn::make('product.name')
    ->url(fn (Payment $record) => ProductResource::getUrl('edit', ['record' => $record->product])),
Tables\Columns\TextColumn::make('user.name')->label('User name')
    ->url(fn (Payment $record) => UserResource::getUrl('edit', ['record' => $record->user])),


لتصبح دالة column  بالشكل التالي

->columns([
    Tables\Columns\TextColumn::make('created_at')->label('Payment time')->sortable(),
    Tables\Columns\TextColumn::make('product.name'),
    Tables\Columns\TextColumn::make('user.name')->label('User name'),
    Tables\Columns\TextColumn::make('product.name')
        ->url(fn (Payment $record) => ProductResource::getUrl('edit', ['record' => $record->product])),
    Tables\Columns\TextColumn::make('user.name')->label('User name')
        ->url(fn (Payment $record) => UserResource::getUrl('edit', ['record' => $record->user])),
    Tables\Columns\TextColumn::make('user.email')->label('User email'),
    Tables\Columns\TextColumn::make('voucher.code'),
    Tables\Columns\TextColumn::make('subtotal')->money('usd'),
])



إضافة تعليق
Loading...