کار با دیتاتیبلز در لاراول

1 سال پیش توسط سید حسین موسوی آپدیت شد
آفلاین
user-avatar
علی رحمانی ( 259 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

1

سلام کسی از دوستان با dataTables برای صفحه بندی داده ها کار کرده؟

بهترین پاسخ
آفلاین
user-avatar
Extern
4 سال پیش

بهترین آموزش داکیومنت خود پکیج هست :
https://datatables.yajrabox.com/starter
ساده توضیح داده مرحله به مرجله جلو برید متوجه موضوع میشد
اما به طور کلی به این صورت کار می کنه شما یک روت را جهت نمایش اطلاعات در نظر میگیرید و یک روت دیگر را برای پردازش اطلاعات جدول
به عنوان مثال بعد از اضافه کردن فایل های مورد نیاز این پکیج به وب سایت و view مربوطه برای نمایش داده ها در controller مربوطه یک function جهت صفحه نمایش اطلاعات (مثل جدول لیست کاربران ) ایجاد می کنید:

    public function index() {
 return view('users.index'); 
}  

بعد یک function برای پردازش اطلاعات و ارسال اونها به جدولتون :

public function usersdata()  
{  
$model = User::get(); //get users  
return Datatables::of($model)->make(true);  
}  

حال در صفحه جدول یا همون view نمایش جدول لیست کاربران که ایجاد کرده بودید باید کد های مربوط به datatable رو قرار بدید :
مثلا اگر yield [email protected] دارید توی قسمت content اون view اضافه می کنید:

<table class="table table-bordered" id="users-table">  
<thead>  
<tr>  
<th>Id</th>  
<th>Name</th>  
<th>Email</th>  
<th>Created At</th>  
<th>Updated At</th>  
</tr>  
</thead>  
</table>  

و در قسمت js همون صفحه


$(function() {  
$('#users-table').DataTable({  
processing: true,  
serverSide: true,  
ajax: '{!! route('datatables.data') !!}',  
columns: [  
{ data: 'id', name: 'id' },  
{ data: 'name', name: 'name' },  
{ data: 'email', name: 'email' },  
{ data: 'created_at', name: 'created_at' },  
{ data: 'updated_at', name: 'updated_at' }  
]  
});  
});

دقت کنید که به جای

{!! route('datatables.data') !!}  

باید آدرس route که برای دریافت دیتا ساختید (usersdata ) در مثال بالا بدید.

باز مستندات رو مطالعه کنید بهتر متوجه میشید و موردی در قسمت خاصی داشتید اعلام بفرمایید

آفلاین
user-avatar
Extern ( 1248 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

0

درود.
شما مشکلتون توی کدام قسمت هست ؟
صفحه بندی رو بیشتر با توجه به تنظیمات در صفحه نمایش انجام میده (اگر از پکیج yajra/laravel-datatables استفاده می کنید) یعنی با تنظیم مقدار result تعیین میکنید در هر بار پردازش چه مقدار دیتا برگردونه

آفلاین
user-avatar
علی رحمانی ( 259 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

0

تو تعریف روت ها برای سرچ و نمایش اطلاعات مشکل دارم. آموزشی هست براش؟

آفلاین
user-avatar
Extern ( 1248 تجربه )
4 سال پیش

لینک کوتاه اشتراک گذاری

4

بهترین آموزش داکیومنت خود پکیج هست :
https://datatables.yajrabox.com/starter
ساده توضیح داده مرحله به مرجله جلو برید متوجه موضوع میشد
اما به طور کلی به این صورت کار می کنه شما یک روت را جهت نمایش اطلاعات در نظر میگیرید و یک روت دیگر را برای پردازش اطلاعات جدول
به عنوان مثال بعد از اضافه کردن فایل های مورد نیاز این پکیج به وب سایت و view مربوطه برای نمایش داده ها در controller مربوطه یک function جهت صفحه نمایش اطلاعات (مثل جدول لیست کاربران ) ایجاد می کنید:

    public function index() {
 return view('users.index'); 
}  

بعد یک function برای پردازش اطلاعات و ارسال اونها به جدولتون :

public function usersdata()  
{  
$model = User::get(); //get users  
return Datatables::of($model)->make(true);  
}  

حال در صفحه جدول یا همون view نمایش جدول لیست کاربران که ایجاد کرده بودید باید کد های مربوط به datatable رو قرار بدید :
مثلا اگر yield [email protected] دارید توی قسمت content اون view اضافه می کنید:

<table class="table table-bordered" id="users-table">  
<thead>  
<tr>  
<th>Id</th>  
<th>Name</th>  
<th>Email</th>  
<th>Created At</th>  
<th>Updated At</th>  
</tr>  
</thead>  
</table>  

و در قسمت js همون صفحه


$(function() {  
$('#users-table').DataTable({  
processing: true,  
serverSide: true,  
ajax: '{!! route('datatables.data') !!}',  
columns: [  
{ data: 'id', name: 'id' },  
{ data: 'name', name: 'name' },  
{ data: 'email', name: 'email' },  
{ data: 'created_at', name: 'created_at' },  
{ data: 'updated_at', name: 'updated_at' }  
]  
});  
});

دقت کنید که به جای

{!! route('datatables.data') !!}  

باید آدرس route که برای دریافت دیتا ساختید (usersdata ) در مثال بالا بدید.

باز مستندات رو مطالعه کنید بهتر متوجه میشید و موردی در قسمت خاصی داشتید اعلام بفرمایید

آفلاین
user-avatar
محسن مهری ( 56458 تجربه )
1 سال پیش
تخصص : برنامه نویس back-end با زبان php framework laravel

لینک کوتاه اشتراک گذاری

0

@Extern @pishguy

سلام و خسته نباشید میخاستم یک بحث جدید بسازم که دیدم این هست گفتم پس بهتره همین رو اپدیت کنم
یه چند تا سوال (سوالهای خسته کننده :|) داشتم، گفتم چون شما تجربه دارید میتونید به من مبتدی کمک کنید

  1. اول اینکه فایلی به نام print.blade.php من پیدا نکردم ؟ اخر مجبور شدم برم توی فایل jquery.dataTables.min.js و اونجا متون انگلیسیش رو فارسی کنم و همچنین کلاسهایی که میخاستم به اون دو تا input,select اش نسبت بدم رو با jquery نسبت بدم، راه بهتری ندارین؟
  2. به نظرتون استفاده این کتابخونه از لحاظ امنیتی در آینده مشکل ساز نخواهد شد ؟؟یعنی امنیت رو نمیاره پایین؟(این سوال خیلی برام حیاتیه چون داده هایی که میخام باهاش نمایش بدم داده های اصلی و مالی پروژم هستند.)
    تشکر از توجهتون
آفلاین
user-avatar
سید حسین موسوی ( 9356 تجربه )
1 سال پیش
تخصص : بک اند دولوپر (لاراول) فرانت (ویو جی اس)

لینک کوتاه اشتراک گذاری

0

سلام و عرض ادب
فکر کنم این مقاله ای که نوشتم بدرد شما هم بخوره
https://vrgl.ir/YnVEF

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.