Laravel, početnička pitanja


#21

Ali onda neces koristit migracije, jer migracije nisu zamisljene da funkcioniraju tako.

Ti mozda zelis imati nekakvu datoteku gdje ces specifirati strukturu tablice, a onda ce neka skripta citati tu datoteku i usporedjivati sa stvarnim stanjem u bazi, i onda sama racunati sto je sve potrebno izmijeniti. Ali to nisu migracije. To je… ne znam zapravo ni kako bih to nazvao.


#22

Zato mi je i čudno da inicijalno kreiranje tablice počinje sa :

  1. php artisan make:migration
  2. uredi migracijski file
  3. php artisan migrate

Tako reći…tim pristupom je kreiranje strukture baze stavljeno u ekvivalenciju sa migracijom podataka.

P.S. možda je samo tutorijal nespretno stavi migraciju kao osnovu kreiranja tablica…ali mi se nekako učinilo da to zaista jeste uhodan put.


#23

Zato sto na taj nacin imas najmanje losih strana. Odnosno gotovo da ih i nemas. Jednu jedinu koju si naveo je ta da nazalost ne mozes otvoriti jednu datoteku i vidjeti cijelu strukturu neke tablice.

Zato je taj pristup verzioniranju baza prihvacen i industrijski standard. Vjeruj mi, nema nista lose u tome sto imas migracije i strukture tablica u vise datoteka. Godinama tako radim, i nisam niti jednom primijetio da me to “bode”. Ti si prvi zapravo od kojeg sam cuo da ga smeta :slight_smile:


#24

Evo baš na nekom Laracast tutorijalu, Jeffrey dodao user polja (Nije ništa migrirao, nego je samo dodao na postojeće tablice) …i rekao “hebiga, izgubit ćemo podatke” …koje je manualno unosio u prethodnim tutorijalima.

Da je imao opciju updejta baze bez da gubi podatke, sigurno bi to iskoristio.
A migraciju nije koristio za dodavanje novog polja…jer migracija je jedno, updejt strukture baze drugo.

Inače, što se tiče standarda…to su možda standardi za kodiranje…no zato postoje i standardi za dokumente koji opisuju strukturu baze i relacije između pojedinih tablica. Ti dokumenti ne samo da su konzistentno oku vidljivi, nego se još i grafički crtaju relacije među tablicama.

Vjerujem da malo tko ovdje vodi po standardima dokumentaciju o strukturi baze, onda je valjda najmanje što možemo učiniti sebi a i onima iza nas…da je data sheet baze fino pregledan.

Ne mogu se nikako složiti da je oku ugodno da tablice bude rasute po razno raznim file-ovima …to može proći onda jedino pored dodatne dokumentacije …za išta imalo kompleksnije.


#25

Mislim da ne shvacas poantu migracija.

Migracija nije jedan standardizirani dokument koji opisuje strukturu svih tablica u bazi.
Migracija je nesto drugo, a to sto ti zelis da migracija bude je nesto trece.


#26

Pozdrav,

spojila sam se na bazu… u bazi sam napravila pogled (view)… ali ne znam kako ga ubaciti u projekt… možete li mi pomoći?


#27

Mislim da je ovde dobro objašnjeno.

U odnosu na to što si već uradila, samo ti nedostaje još model koji će da uzima podatke iz view-a.
U artiklu iznad stoje svi koraci u situaciji da još nisi ni kreirala view kako da ih sprovedeš kroz laravel migracije.


#28

@c3po Učim od najboljih. :+1:


#29

Tako tako, od njih, i od bilo koga tko ti sugerira nešto ispravno. :+1: Hvala. :o:


#30

Kakve su to nebuloze?

Ako imas dodavanje kolone i sl., onda u migraciji imas alter table xy add column itd…

Ako imas insert, pises insert statement.

I to funkcionira.

Bilo koja kategorija: DDL, DML, DCL i TCL moze u migracije, jer je to sve ide preko sql-a, a kod izvrsavanja sql-a, svejedno da li pise create, alter ili select.

U insert statement idu samo podaci za sifarnik.


#31

Pozdrav! opet sam malo zapela… ovo je moj kod:

web.php
Route::get('/admin/directory/{gender}','DirectoriesController@getGender');

controller
public function getGender() { $genders = DB::table('gender')->pluck('id','gender'); return view('pages.admin.modals-admin.create.add-directory',compact('genders')); }

view

<div class=“form-group”>
{{Form::label(‘gender’,‘Spol’)}}
@foreach($genders as $gender)
{{Form::select(‘gender_id’, $gender, null,
[‘class’ => ‘form-control’])}}
@endforeach
</div>

Piše mi Undefined variable: genders… U čemu bi mogao biti problem?


#32
$genders = DB::table('gender')->get();

#33

i dalje se javlja ista greška… :frowning:


#34

Je li $genders dobro prikazana kolekcija kad se koristi get()? Šta se dobije?


#35

Našla sam nekakvo rješenje…

web.php

Route::resource('/admin/directory','DirectoriesController'); //Directory - routes
Route::get('/admin/directory','DirectoriesController@getGender');

Controller

  public function getGender()
    {
        $genders = Gender::pluck('gender', 'id');
        return view('pages.admin.modals-admin.create.add-directory', compact('genders'));
    }

View

  <div class="form-group">
    {{Form::label('gender','Spol')}}
    {{Form::select('gender', $genders,'', ['class' => 'form-control'])}}
  </div>

sve funkcionira ali izgled nije kakav bi trebao biti… treba biti Modal iz Bootstrapa a izgleda kao plain text…
app3
kako da to promjenim? mislim da mi u web.php-u nešto ne valjda ali ne mogu skužiti što…
također ne rade ni ostali Modali na drugim stranicama… ne razumijem što sam propustila, ispustila…


#36

Izgleda kao da bootstrap css (vjerojatno i js) nije učitan. Pogledaj u source prikazane stranice i vidi da li je boostrap css uopće u headu, a ako je provjeri da li je path do bootstrapa ispravan


#37

Ovo je head… ali u ostatku aplikacije radi najnormalnije… samo kad uključim ovaj select u modal windowu ne radi taj modal window…

<head>
<meta charset=“utf-8”>
<meta http-equiv=“X-UA-Compatible” content=“IE=edge”>
<meta name=“viewport” content=“width=device-width, initial-scale=1”>
<meta name=“csrf-token” content="{{ csrf_token() }}">
<link rel=“stylesheet” type=“text/css” href="{{asset(‘css/app.css’)}}">
<link rel=“stylesheet” type=“text/css” href="{{asset(‘plugin/aos/aos.css’)}}"/>
<script src="{{ asset(‘js/app.js’) }}"></script>
<script type=“text/javascript” src="{{ asset(‘plugin/aos/aos.js’) }}"></script>
</head>


#38

Prvi tip bi mi bio na vrijeme dohvatanja podataka (redoslijed punjenja blade fajlova).

  1. Pokušaj kad ostaviš sve <script> tagove u footer-u.
  2. Ako ne, možda AJAX-om da se riješi populacija select polja.
  3. Ako ni to, testiraj sa hard-coded HTML-om umjesto Form:: prikaza.

Nisam pametan koje od ovih bi’ prvo prob’o. Možda čak i treći prijedlog kad već ne pravi problem bez Form:: dijela.


#39

hvala!! ma skužila sam gdje je greška… u Controlleru…umjesto u function index() stavila sam gender i status u function create()… :roll_eyes::yum:

ovako treba izgledati:
public function index()
{
$directories = DB::select(“SELECT*FROM view_directories”);
$genders = Gender::all()->pluck(‘gender’, ‘id’);
$statuses = Status::all()->pluck(‘status’, ‘id’);
return view(‘pages.admin.directory’, compact(‘directories’,‘genders’,‘statuses’));
}


#40

@malabo

sql query ide u model ili u library.