Eno vprašanje glede Laravel 5

Recimo ustvarim en model in ga kličem/inicializiram v controllerju tako, da mu zapišem atribute. Ti se jasno prenesejo v _construct od Eloquent modela (ne mojega modela ampak onega privzetega extendanega, ker v mojem modelu nimam _construct()), ki pa naredi kaj? Vse te vrednosti zapiše v polje $attributes, ne?

Recimo sedaj pa v controllerju preko modela ustvarim še neke nove lastnosti (preko setters) in Laravel v ozadju spet samodejno vse te lastnosti vrže v lastnost/polje $attributes (doda jih že obstoječim), ne?

Ko poženem metodo save() pa se izvede query točno na podlagi vrednosti iz $attributes, ne?

Upam, da sem bil dovolj jasen, drugače lahko dam kak primer, da bo bolj razumljivo ampak je kar nekaj kode, pa se mi ni dalo v prvo vse kopirati :P

17 odgovorov

(če slučajno napišem napačen url, se mi izpiše, mislim, da curl napaka 77 ali 72, ki opozori na napačen url tako da url je 100% pravi)

1

Probaj raje z curlsetopt(CURLOPTCAINFO, '...')

edit: ah ja uporabljaš nek xy paket kjer nimaš dostopa do curl handla

1

SlimDeluxe:
Probaj raje z curlsetopt(CURLOPTCAINFO, '...')

edit: ah ja uporabljaš nek xy paket kjer nimaš dostopa do curl handla

curlsetopt(CURLOPTCAINFO, '...') ne pomaga.

Lahko poveš kaj več?

Imam še eno vprašanje glede "dobre prakse" v Laravel (bi rad začel pisati malo lepšo kodo in ne pacat tako kot sem pri proceduralnem načinu :P )

V blade želim dodati nov "active" stil za posamezno kategorijo, če je ta aktivna. Katergorije so vnešene ročno. Nekako najbolj pregledno in najkrajša koda se mi zdi, da zapišem..

V controller definiram spremenljivko

private $active = 'class="active"';

V posamezno metodo..

$category_active = $this->active;

()

V blade pa zapišem...

{!! $category_active or '' !!}

ali

{!! $drug_kategorija_active or '' !!} ipd.

Bi se dal to kako lepše rešiti? Tale "or ' '" je malo brezveze ampak drugače bi moral pisati isset() pa že takoj zapacam vse skupaj.

Ima še eno bolj začetniško vprašanje.

Definiran imam custom request in me zanima, kako lahko spremenim posamezne vrednosti atributov oz. polja, ki ga dobim z $request->all()? Informativno me zanima za vse vrednosti, najbolj pa za "avatar", ki je "file" (vrne objekt).

dd($request->all())

Category::create($request->all()); mi v bazo pod vrednost "avatar" zapiše začasno pot do datoteke (?) želel pa bi, da se tu zapiše custom ime slike, ki sem ga generiral v spremenljivki $name.

Vse bi lahko zapisal kot

$category = new Category([
                ...
            'avatar' => $name
        ]);

        $category->save();

ampak mi je koda Category::create($request->all()); lepša in tudi krajša. Sem (optimistično) poskusil z $request->avatar = $name; pa ne deluje.

Oziroma bi lahko zapisal tudi Category::create([..., 'avatar' => $name]); ampak je to še vedno daljši zapis, ker moram zapisati vse vrednosti.

Sem uredil tako, če mogoče koga zanima.

$data = $request->except('avatar');
$data['avatar'] = $name;
Category::create($data);