علی رحمانی
7 سال پیش توسط علی رحمانی مطرح شد
5 پاسخ

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

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


ثبت پرسش جدید
Extern
@Extern 7 سال پیش آپدیت شد
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 content@ دارید توی قسمت 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 ) در مثال بالا بدید.

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


Extern
@Extern 7 سال پیش مطرح شد
0

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


علی رحمانی
@pishguy 7 سال پیش مطرح شد
0

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


Extern
@Extern 7 سال پیش آپدیت شد
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 content@ دارید توی قسمت 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 ) در مثال بالا بدید.

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


محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 4 سال پیش مطرح شد
0

@Extern @pishguy

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

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

سید حسین موسوی
تخصص : بک اند دولوپر (لاراول) فرانت (...
@shm379 4 سال پیش مطرح شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام