Modal window показва всички записи вместо селектираните

vinsbg

Registered
Имам един малък проблем с modal window. Ако потребителя има 2 записа(поръчки) той вижда 2 бутона Download на страницата. Всеки бутон е за всяка различна поръчка.

Получават се 2 бутона на таблицата за всяка поръчка по един
Код:
<a class="btn btn-primary btn-xs"  href="#files-{{ $download->order_id }}">Download</a>
<a class="btn btn-primary btn-xs"  href="#files-{{ $download->order_id }}">Download</a>

А това е как зареждам модала
Код:
            <span id="start" class="target"></span>
            <span id="files-{{ $download->order_id }}" class="target"></span>
            <div class="modal">
                <div class="content vertical-align-middle">
                    <h2>Click on the button to download it</h2>
                    <table class="table table-striped">
                      <thead id="tblHead">
                        <tr>
                          <th align="center">File</th>
                          <th align="center">Action</th>
                        </tr>
                      </thead>
                      <tbody>
                        @foreach($downloadableOrders as $files)                     
                            @if($files->status == 1)
                                {{--*/ $ids = explode(",", $files->docname); /*--}}
                                @foreach ($ids as $id)
                                    <tr>
                                      <td></td>
                                      <td><a href="{{ URL::to('/files/download/' . $id . '?_token=' . csrf_token()) }}">Download</a></td>
                                    </tr>
                                @endforeach
                            @endif
                        @endforeach
                      </tbody>
                    </table>
                    <a class="close-btn" href="#start">X</a>
                </div>
            </div>
Проблема е, че когато модала се отвори без значение кой от двата бутона съм натиснал виждам всички файлове. Заявката, която ползвам
Код:
$downloadableOrders = Order::where('user_id', getCurrentUser()->user_id)
						 ->select("orders.*",\DB::raw("GROUP_CONCAT(documents.id  ) as docname"))
						 ->leftjoin("documents",\DB::raw("FIND_IN_SET(documents.id,orders.order_downloadable)"),">",\DB::raw("'0'"))
						 ->groupBy("orders.order_id")
						->paginate(10);
 
Братле това става с 2 релейшъншипа и добре организирана база данни, няма нужда да ползваш raw селектирания и т.н. По-добре научи релейшъните и кое кога да ползваш и ще видиш колко бързо и лесно с по 1 ред става всичко дори и това.:idea:

П.с. Кажи, че ползваш Laravel, кажи каква е идеята, какво имаш, какво искаш - това което разбрах е .. имам поръчки .. имам файлове трябва да са 2 бутона .. ама ето каак става проблема е че виждам всички файлове - не става много ясно нали. Аз те разбрах, спокойно, но каква е гаранцията, че ше те разбере и друг ? :idea:

Оформи си върпоса правилно, ще ти помогне да осмислиш нещата и може би сам ще намериш отговора, до тогава, научи тея релейшъни брат, плс :D
 
Laravel e. Знам за рилейшъните. Не мога да ги ползвам в този случай.
 
Fakeheal каза:
Мисля, че не можеш да ползваш relationships, защото отново имаме ненормализирана база данни :)

but I could be wrong, tho.
Точно така, а да започна да я нормализирам .. прекалено много време ще отнеме
 
Да, но имай предвид, че не я ли нормализираш сега, за напред винаги ще имаш проблеми.

1. Измисляне на проект
2. Изграждане на правилната структура на базата данни
3. Писане на софтуер
(има и други точки, които трябва доста добре да се обмислят преди да се пише софтуера, но няма да споменавам сега)

Преди да се почне да се пише проекта, трябва да се обмисли и създаде добре направена база данни иначе след това постоянно ще правиш промени, я по базата, я по кода.
Не знам дали имаш някакъв deadline за изпълнение на това, което правиш, но ти препоръчвам да оправиш базата данни първо. Със сигурност няма да съжаляваш.
 
Сори, че пак спамя и няма да ти дам код, но релациите могат да се използват за всякакъв вид объркана база данни. Дори не е нужно да посочваш модел за съответната таблица, може да използваш query builder-а и да ти върне обект и така също ще стане .

Пример:

Код:
 public userOrders()
{
   return \DB::table('orders')->whereUserId($this->id)->get();
}

Но пак повтарям, това не е правилно, използвай relationsip-вете иначе така ще изпаднеш в батак. Но ако условието на проекта е да не променяш базата данни или от нея зависят и други проекти, тогава това е решението.

Казвам ти го това за да си опавиш заявките, защото проблема не е базата данни. :idea:

А и това ме зарадва, наистина:
\DB::raw("FIND_IN_SET(documents.id,orders.order_downloadable)"),">",\DB::raw("'0'")
- 0 като raw :D

Не ти се присмивам или нещо такова, но ти казах да погледнеш релейшъните и ти каза, че ги знаеш, ама не ги ползваш, защото не можеш, което значи, че не са ти ясни.

Отново извинявай за спама, просто исках да го отбележа, тъй като стана дума за базата данни :)

Пс. Давайте ги тея таблици ве пичове, няма да ви откраднем идеята или великата структура на базата данни. Няма как да знаем кое как се свързва и кое искаш да изкараш и какво имаш нали ? 3-ма души ти пишем и ти сега си викаш б*си спамерите, един не помогна. Сега си задай въпроса как да ти помогнем като не знаем нищо освен :

имам поръчки .. имам файлове трябва да са 2 бутона .. ама ето каак става проблема е че виждам всички файлове - не става много ясно нали
:D
 
Е те точно това е проблема. Проекта вече е доста голям, доста объркан и не съм го почвал аз от началото. Няма нито време нито как да почвам да му оправям базата.

Джо, не смятам, че сте спамери.. Просто решението, което се предлага не е приложимо в за момента.

Не знам, какво още е нужно като информация.

Код:
// table orders, колона order_downloadable = table documents id
order_downloadable = id

Понеже в order_downloadable се записват id-тата със запетая, защото потребителя може да поръча повече от 1 документ - 1,34,23,13 ги експлоудвам във вюто така:

Код:
{{--*/ $ids = explode(",", $files->docname); /*--}}
така си получавам за всеки файл отделен бутон, а не всички файлове на един бутон и да ги даунлоудва като зип ( въпреки, че и това е решение )
 

Горе