рдореЗрд░реЗ рдкрд╛рд╕ Question
рдореЙрдбрд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдЧрднрдЧ 30,000 рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ:
class Question extends Model
{
use SoftDeletes;
protected $primaryKey = 'question_id';
protected $fillable = ['text', 'code', 'cat', 'answer', 'confirmed', 'is_private', 'email', 'parent', 'expert'];
public function sub_questions ()
{
return $this->hasMany(Question::class, 'parent', 'question_id');
}
public function latest_sub_question ()
{
return $this->hasOne(Question::class, 'parent', 'question_id')->latest();
}
}
рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕реВрдЪреА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ yajra datatable laravel package рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдпрд╣ рдореЗрд░рд╛ рдЬреЗрдПрд╕ рдХреЛрдб рд╣реИ:
var allQuestionsTable =
$('#allQuestionsTable').DataTable({
processing: true,
serverSide: true,
"bSort": false,
"responsive": true,
ajax: {
url: '{!! route('admin.questionsDatatable') !!}'
},
columns: [
{data: 'checkbox'},
{data: 'code', name: 'code'},
{data: 'text', name: 'text'},
{data: 'created_at'},
{data: 'answer', name: 'answer'},
{data: 'expert'},
{data: 'confirmed'},
{data: 'actions'}
]
});
рдФрд░ рдмреИрдХ-рдПрдВрдб рдореЗрдВ рдореИрдВрдиреЗ рдпрд╣ рдлрдВрдХреНрд╢рди рд▓рд┐рдЦрд╛:
public function questionsDatatable (Request $request)
{
$questions = Question::with('latest_sub_question')->whereNull('parent');
$datatable = app('datatables')->of($questions)
->addColumn('checkbox', '<input type="checkbox" name="item_id[]" value="{{$question_id}}" id="Check_{{$question_id}}">');
//other column modifications comes here
return $datatable->make(true);
}
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЬрдм рдореЗрд░реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдереАрдВ, рддреЛ рд╕рднреА рдЪреАрдЬреЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рдереАрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирдП рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗ, рддреЛ questionsDatatable
рдЦрд╛рд▓реА рдорд╛рди рд▓реМрдЯрд╛рддреЗ рдереЗ рдФрд░ рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рддреЗ рдереЗред
рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ ? рдФрд░ рдХреНрдпрд╛ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
рдХреНрдпрд╛ рдЖрдкрдиреЗ AJAX рдЕрдиреБрд░реЛрдз рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдпрд╣ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдбрдВрдк рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
@yajra , рд╣рд╛рдБ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рдЦрд╛рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ 500 Internal Server Error
рд╕реНрдерд┐рддрд┐ рдХреЛрдб рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рдмреАрдЪ рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ app('datatables')
рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ get()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ each()
рдкрд░ $questions
each()
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░рд╛ рдмреИрдХрдПрдВрдб рдХреЛрдб рд╣реИ:
public function questionsDatatable (Request $request)
{
$questions = Question::with('latest_sub_question')->whereNull('parent');
$questions = $questions->get();
$questions = $questions->map(function ($item, $key) {
return is_null($item->latest_sub_question) ? $item : $item->latest_sub_question;
});
$questions->sortByDesc('created_at');
$datatable = app('datatables')->of($questions)
->addColumn('checkbox', '<input type="checkbox" name="item_id[]" value="{{$question_id}}" id="Check_{{$question_id}}">');
//other column modifications comes here
return $datatable->make(true);
}
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реИ рдпрд╛ рдирд╣реАрдВ?
рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк get
рд╣рдЯрд╛ рджреЗрдВред рдиреАрдЪреЗ рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
public function questionsDatatable (Request $request)
{
$questions = Question::with('latest_sub_question')->whereNull('parent');
$datatable = app('datatables')->of($questions)
->addColumn('checkbox', '<input type="checkbox" name="item_id[]" value="{{$question_id}}" id="Check_{{$question_id}}">');
->editColumn('latest_sub_question', function($item) {
return is_null($item->latest_sub_question) ? $item : $item->latest_sub_question;
})
//other column modifications comes here
return $datatable->make(true);
}
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк
get
рд╣рдЯрд╛ рджреЗрдВред рдиреАрдЪреЗ рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред