Как отсортировать данные из базы в laravel html - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь отсортировать конкретную строку в таблице.Но я застрял посреди этого.Я использую Kyslik \ ColumnSortable \ Sortable;в файле модели.Но фактического эффекта нет.Есть идеи для этого?

class estates extends Model
{
use Sortable;

protected $fillable = [ 'Entry', 'Price' ];

protected $table="estates";

public $Sortable = ['Entry', 'Price']; 
}

Мой контроллер;

public function sumos()
{
  $data['este'] = estates::all();
  return view('pages.sumo', $data);

  return view('pages.sumo',['este' => estates::sortable()->get()]);

}

и в html;

<table align="center">
<tr>
    <td colspan="11" id="header"><h1>物件概要<h1></td>
</tr>
    <tr>
        <th width="340px">会社名</th>
        <th width="80px">物件名</th>
        <th width="135px">所在地</th>
        <th width="135px">総戸数</th>
        <th width="80px">間取り</th>
        <th width="100px">専有面積</th>
        <th width="80px">バルコニー面積</th>
        <th width="100px">竣工年月日</th>
        <th width="100px">@sortablelink('Entry', '入居年月日')</th>
        <th width="100px">@sortablelink('Price', '価格')</th>
        <th width="100px">販売会社名</th>
    </tr>
<table>


@foreach($este as $row) 
<table align="center">
    <tr>
        <td width="340px">Company Name</td>
        <td width="80px">{{ $row->Building_Names }}</td>
        <td width="135px">{{ $row->Addresses }}</td>
        <td width="135px">{{ $row->HouseHolds }}</td>
        <td width="80px">{{ $row->Rooms }}</td>
        <td width="100px">{{ $row->Balconys }}</td>
        <td width="80px">{{ $row->Extents }}</td>
        <td width="100px">{{ $row->Constrution }}</td>
        <td width="100px">{{ $row->Entry }}</td>
        <td width="100px">{{ $row->Price }}</td>
        <td width="100px">{{ $row->Company }}</td> 
    </tr>
</table>
@endforeach

Есть идеи, как решить (как отсортировать) конкретные данные?Спасибо

Ответы [ 4 ]

0 голосов
/ 26 сентября 2018

Вы должны написать это.Надеюсь, это решит вашу проблему

<table align="center">
    <tr>
        <td colspan="11" id="header"><h1>物件概要<h1></td>
    </tr>
        <tr>
            <th width="340px">会社名</th>
            <th width="80px">物件名</th>
            <th width="135px">所在地</th>
            <th width="135px">総戸数</th>
            <th width="80px">間取り</th>
            <th width="100px">専有面積</th>
            <th width="80px">バルコニー面積</th>
            <th width="100px">竣工年月日</th>
            <th width="100px">@sortablelink('Entry', '入居年月日')</th>
            <th width="100px">@sortablelink('Price', '価格')</th>
            <th width="100px">販売会社名</th>
        </tr>

@foreach($este as $row) 
        <tr>
            <td width="340px">Company Name</td>
            <td width="80px">{{ $row->Building_Names }}</td>
            <td width="135px">{{ $row->Addresses }}</td>
            <td width="135px">{{ $row->HouseHolds }}</td>
            <td width="80px">{{ $row->Rooms }}</td>
            <td width="100px">{{ $row->Balconys }}</td>
            <td width="80px">{{ $row->Extents }}</td>
            <td width="100px">{{ $row->Constrution }}</td>
            <td width="100px">{{ $row->Entry }}</td>
            <td width="100px">{{ $row->Price }}</td>
            <td width="100px">{{ $row->Company }}</td> 
        </tr>
 @endforeach
 </table>

Также добавьте use Kyslik\ColumnSortable\Sortable; вверху нашей модели

В вашем контроллере измените это

public function sumos()
{
  $este= estates::sortable(['Price' => 'desc'])->get();
  return view('pages.sumo', compact('este'));
}
0 голосов
/ 26 сентября 2018

использовать встроенный метод laravel для сортировки, используя два способа сделать ..

по запросу и по коллекции

попробуйте это

estates::orderBy('Entry')->orderBy('Price')->get()
0 голосов
/ 26 сентября 2018

Я быстро взглянул на документацию используемого вами пакета.

https://github.com/Kyslik/column-sortable

Вы должны добавить @sortablelink('field', 'Field') к заголовкам таблицы.

Также, глядя на метод контроллера, ваша сортировка никогда не будет достигнута.

public function sumos()
{
  return view('pages.sumo',['este' => estates::sortable()->get()]);
}

Надеюсь, это поможет

0 голосов
/ 26 сентября 2018

Одним из самых простых решений является использование таблиц данных

...