Changes between Version 11 and Version 12 of Имплементација


Ignore:
Timestamp:
11/15/21 15:12:56 (3 years ago)
Author:
151545
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Имплементација

    v11 v12  
    1010
    1111=== - Имплементациски дијаграм ===
     12
    1213Во овој дел ќе бидат прествени и објаснати одредени функционалности од системот кои се користат нај често во рамки на системот. Ќе започнам со објаснување за начинот на креирање на оддел кој што е предуслов за креирање на фолдер т.е. документ.\\
    13 Во MVC системот моделот е објект кој се состои од податоци во одредена табела во база. View го претставува интерфејсот преку кој корисникот комуницира со апликацијата. Кога корисникот презема акција, контролорот се справува со акцијата и ги ажурира податоците во база преку моделот доколку е потребно.\\
     14Во MVC системот моделот е класа која се состои од податоци запишани во одредена табела во база. View го претставува интерфејсот преку кој корисникот комуницира со апликацијата. Кога корисникот презема акција, Controller се справува со акцијата и ги ажурира податоците во база преку моделот доколку е потребно.\\
    1415Во Laravel, моделот обично е класа со променливи што одговараат на колоните во базата на податоци т.е. променливите кои се дефинирани во Migrations во одредена табела. Контролерите се одговорни за завршување на корисничките дејства и за управување со деловната логика на апликацијата. Рутирањето на ресурсите во Laravel ги доделува „CRUD“ операциите или функциите дефинирани во контролерот со една линија код.\\
    1516
     
    5152
    5253''Метод од контролерот DepartmentsController за приказ на сите оддели запишани во база''\\
    53 Методот index се повикува кога рутата /departments е вчитана со методот GET HTTP. Во овој метод, ние ги преземаме сите достапни  податоци во табелата со оддели користејќи го моделот Department и го пренесуваме во интерфејсот вкако променлива. Ова значи дека во интерфејсот, променливата $departments ќе може да се користи за да се прикажат податоци од колекцијата која ги состои сите оддели.
     54Методот index се повикува кога рутата /departments е вчитана со методот GET HTTP. Во овој метод, ние ги преземаме сите достапни  податоци во табелата за оддели користејќи го моделот Department и го пренесуваме во интерфејсот како променлива. Ова значи дека во интерфејсот, променливата $departments ќе може да се користи за да се прикажат податоци од колекцијата која ги состои сите оддели.
    5455
    5556{{{
     
    6869
    6970''Листа на рути за оддели''\\
    70 Секој повик во Laravel потребно е да има посебна рута. Рутата со име index ја дефинирав посебно за да се ограничи пристапот за корисници кои имаат ролја во која не е дозволено да управуваат со оддели. Рутата store служи за креирање на нов оддел. Методот во оваа рута е post затоа што треба да се запишуваат нови податоци т.е. да се креира нов оддел. Кога се работи за приказ на податоци се користи методот get како што е рутата editShow која служи за приказ на еден оддел. Методот patch се повикува кога се прави ажурирање на податоците во база што во овој случај е рутата со име edit. На двете рути за да прикажат и ажурираат оддел потребно им е да се додели вредност id која означува id на одделот во табела.
     71Секој повик во Laravel потребно е да има посебна рута. Рутата со име index ја дефинирав посебно за да се ограничи пристапот за корисници кои имаат ролја во која не е дозволено да управуваат со оддели. Рутата store служи за креирање на нов оддел. Методот во оваа рута секогаш треба да е post затоа што се запишуваат нови податоци т.е. се креира нов оддел. Кога се работи за приказ или влечење на податоци од табела се користи методот get како што е рутата editShow која служи за приказ на еден оддел. Методот patch се повикува кога се прави ажурирање на податоците во база за веќе креиран оддел што во овој случај е рутата со име edit. На двете рути за да прикажат и ажурираат оддел потребно им е да се додели вредност id која според id-то во база ќе го најде конкретниот оддел.
    7172
    7273
     
    8586
    8687        }
     88
    8789        $department->location = $location;
    8890        $department->user_id = auth()->id();
    8991
    90         $users = User::all();
    91 
    9292        $department->save();
    9393
    94         Alert::flash("New Department added successfully");
     94        Alert::flash("New Department added successfully", "success");
    9595
    9696        return redirect()->route("dashboard.departments.index");
     
    9898}}}
    9999''Метод од контролерот DepartmentsController за креирање на нов оддел''\\
    100 Како што може да се види и во кодот методот како влезен параметар има објект од класата NewDepartmentRequest каде што се прави валидацијата на променливите од моделот Department.
     100Како што може да се види и во кодот методот како влезен параметар има објект од класата NewDepartmentRequest каде што се прави валидацијата на променливите од моделот Department кога тие ќе стигнат преку HTTP барањето преку формата која претходно ја пополнувал корисникот во интерфејсот на апликацијата. Почнуваме со креирање на нов објект од класата Department и сите параметри кои треба да се запишат во база за тој оддел ќе бидат еднакви на тие што доаѓаат од повикот. При креирање на одделот за истиот креираме и фолдер во сервер за зачувување на датотеките. Името на фолдер-от го одредува кодот кој го доделуваме на новиот оддел а локацијата на фолдер-от ја зачувуваме во променлива. На крај го зачувуваме одделот и прикажуваме порака на корисникот дали во таа сесија поминало барањето или не. Доколку има грешки се прикажуваат валидациски пораки. Последен чекор е да се вратиме на почетниот екран.\\
     101
     102{{{
     103class Alert
     104{
     105    public static function flash($message, $type = "success")
     106    {
     107        return request()->session()->flash("alert", [
     108            "message" => $message,
     109            "type" => $type
     110        ]);
     111    }
     112}
     113}}}
     114''Класата Alert за приказ на пораки од сесија''\\
     115Методот во класата алерт е креиран за да му ја олесни работата на корисникот во моментот кога нема да помине барањето поради грешка при валидација на податоците или друг проблем. За приказ на пораките користев Тоаst JS [11].\\
     116
     117{{{
     118{{--  Validation errors --}}
     119@if($errors->any())
     120    @foreach ($errors->all() as $error)
     121        <script>
     122                new Toast({
     123                    message: "{{$error}}",
     124                    type: 'danger'
     125                });
     126        </script>
     127    @endforeach
     128@endif
     129
     130{{--  Http request alerts --}}
     131@if(session()->has("alert"))
     132    <script>
     133                new Toast({
     134                    message: "{{session()->get("alert.message")}}",
     135                    type: '{{session()->get("alert.type")}}'
     136                });
     137
     138
     139    </script>
     140@endif
     141}}}
     142''Интерфејсот за приказ на пораките''\\
     143Во првиот дел проверуваме дали има грешка и ја враќаме пораката од сесија и типот го поставуваме да е секогаш грешка за да биде соодветно на пораката додека во вториот дел проверувам дали во сесија има објект alert т.е. дали се враќа одговор од серверот и ја прикажуваме пораката и типот на одговорот според сесија.
    101144
    102145