Я использовал метод Eloquent для работы с таблицами. Я не использовал запрос и присоединяется. Просто устанавливаю отношения с hasMany и принадлежит To. И я не хочу использовать соединения и запросы. Я должен отсортировать результаты на основе некоторых полей. Сортировка по основным полям таблицы работает без проблем. Но когда я хочу отсортировать по связанным полям таблицы, я получаю сообщение об ошибке.
URL запроса: http://localhost:8000/admin/pagination/fetch_data?page=1&sortby=product.product_title&sorttype=asc
Метод запроса: ПОЛУЧИТЕ Код состояния: 500 Внутренняя ошибка сервера
Это мой код.
Комментарий
class Comment extends Model
{
public function user()
{
return $this-> belongsTo('App\User', "comment_userid");
}
public function confirmerUser()
{
return $this-> belongsTo('App\User', "comment_confirmeruserid");
}
public function product()
{
return $this->belongsTo("App\Product", "comment_productid");
}
}
Продукт
class Product extends Model
{
public function comments()
{
return $this->hasMany('App\Comment', "comment_productid");
}
}
Пользователь
class User extends Authenticatable
{
public function comments()
{
return $this->hasMany('App\Comment', "comment_userid");
}
public function comments_confirmer()
{
return $this->hasMany('App\Comment', "comment_confirmeruserid");
}
}
В контроллере
public function controller_fetch_data(Request $request)
{
if( $request->ajax() ) {
$sort_by = $request->get('sortby');
$sort_type = $request->get('sorttype');
$comments = Comment::with('user', 'confirmerUser', 'product')
->orderBy($sort_by, $sort_type)->paginate(5);
$p_pagenumber = $request['page'];
return view("adminPanel.comment_list")
->with('p_pagenumber', $p_pagenumber)
->with('comments', $comments)
->render();
}
}
В поле зрения
function fetch_data(page, sort_type, sort_by)
{
$.ajax({
url : "/admin/pagination/fetch_data?page=" + page + "&sortby=" + sort_by + "&sorttype=" + sort_type,
success : function(data) {
$("#table_data").html('');
$("#table_data").html(data);
}
});
}