Category : laravel

Przesyłanie plików ajaxem z input[type=”file”] Najpierw utwórz Route w web.php typu post i z metodą prowadzącą do jakiegoś controllera. Gdy masz formularz z polem z plikiem nie zapomnij dodać pola _token var formData = new FormData(); formData.append(„file”, $(’input[name=”myFile”]’)[0].files[0] ); formData.append(„_token”, $(’input[name=”_token”]’).val() ); $.ajax({ type: 'post’, url: ajaxUrl, data: formData, contentType: false, processData: false, error: function ..

Read more

Całkiem fajnie zrobione jest to tutaj: https://laravel-news.com/tntsearch-with-laravel-scout Dodanie relacji do wyników wyszukiwania: w modelu dodatkowa funkcja public function toSearchableArray() { $a = $this->toArray(); $tags = $this->tags()->get([’name’])->map( function ($tag) { return $tag[’name’]; }); $a[’tags’] = implode(’ ’, $tags->toArray()); return $a; } Następnie we wszelkich funkcjach zapisu/aktualizacji trzeba dopisać coś takiego $modelName->searchable(); Import pierwszego indeksu php artisan ..

Read more

DebugBar aby zainstalować plugin DebugBar wpisujemy w konsoli composer require barryvdh/laravel-debugbar w config/app.php do tablicy providers dodajemy Barryvdh\Debugbar\ServiceProvider::class, a do tablicy aliases 'Debugbar’ => Barryvdh\Debugbar\Facade::class, Ukrywanie błędów w .env jest zmienna APP_DEBUG. True – pokazuje błędy Własny szablon domyślny błędów: w app/Exceptions/Handler.php znajdź funkcję render i zmień ją tak: public function render($request, Exception $exception) { ..

Read more

Żeby zapisać w sesji cokolwiek, należy użyć: session(’message’, 'Some default message’); Wiadomość w sesji trwająca tylko do pierwszego odświeżenia session()->flash(’message’, 'Some default message’); następnie w miejscu, gdzie pojawi się następna strona (np zaraz po zalogowaniu strona główna) wbijamy sobie takie coś: @if ( $flash = session(’message’) ) <div class=”alert”> {{ $flash }} </div&..

Read more

Tworząc relację, bierzemy dwa modele, które są ze sobą powiązane. Jeżeli funkcję z jednego modelu nazwiemy jak nazwę modelu drugiego, to laravel sam je połączy Relacja 1 do 1 //To w modelu video public function user() {     return $this->belongsTo(’App\User’); } Relacja 1 do wielu //To w modelu user public function videos() { return ..

Read more

Tworzenie podstawowego systemu uwierzytelniania php artisan make:auth Szyfrowanie hasła bcrypt(’haslo); Wyświetlanie aktualnie zalogowanego użytkownika W controllerze np posts trzeba dodać use Auth; następnie wywołać go można poprzez Auth::user(); //lub ewentualnie to, co niżej Auth::user()->name; Blokowanie dostępu dla niezalogowanych public function __construct() { $this->middleware(’auth’, [’only’=>’create’]); //$this->middleware(’auth’, [’except’=>’index’]); } Zapis użytkownika z formularza rejestracji public function store() ..

Read more

Używanie less/sass trzeba mieć zainstalowane: nodejs oraz npm. Następnie w katalogu projektu uruchamiamy komendę npm install kolejnym krokiem jest edycja pliku /webpack.min.js, żeby system wiedział, co ma skompilować. Później można już odpalić npm run dev co odpali funkcję dev z pliki /package.json. Odpalenie watchera npm run watch Autorefresh strony po zmianach Do webpack.min.js trzeba dopisać ..

Read more

Zabezpieczenie formularza tokenem {{ csrf_field() }} W routes funkcja zapisu odnosi się do parenta i zmieniamy typ na post Route::get(’/posts/create’, 'PostController@create’ ); Route::post(’/posts’, 'PostController@store’); Ewentualnie w routes dajemy coś takiego: Route::post(’/save’, [ 'uses’ => 'SitesController@save’, 'as’ => 'sites.save’ ]) a w formularzu akcję podpinamy tak, jak poniżej. Daje nam to elastyczność, gdybyśmy w routes zmieniali ..

Read more

Tworzenie modelu php artisan make:model NazwaModelu Ale lepszym rozwiązaniem jest stworzenie modelu razem z powiązaniem z tabelą w bazie danych i z controllerem nazwa modelu z wielkiej litery (tak się przyjęło) php artisan make:model NazwaModelu -mc gdyby pojawiły się jakieś problemy, to uruchom polecenie composer dump-autoload Query scopes (omówione w oficjalnym tutku o tytule Eloquent ..

Read more