Laravel, početnička pitanja

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.

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.

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:

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.

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.

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?

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.

2 Likeova

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

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

1 Like

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.

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?

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

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

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

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…

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

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>

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.

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’));
}

@malabo

sql query ide u model ili u library.