Projekt vytvoríme nasledujúcim príkazom:
composer create-project --prefer-dist laravel/laravel nazovProjektu
Projekt sa vytvorí v adresári kde sa akutálne nachádzame.
Vytvoríme databázu:
DROP DATABASE IF EXISTS laravel
CREATE DATABASE IF NOT EXISTS laravel
otvoríme súbor .env a nastavime potrebné parametre databázy, uvádzam ako príklad moje nastavenie databázy:
V terminály pôjdeme do nášho projektu
cd nazovProjektu
a spustíme ho príkazom:
php artisan serve
na adrese
localhost:8000 by sme mali vidieť úvodnu stránku Laravelu
v súbore
routes/web.php doplnime:
Route::get('/ahoj', function () { echo "ahoj"; });
spustíme
localhost:8000/ahoj
v súbore
resources/views/welcome.blade.php doplnime dátum:
{{date ('Y-m-d H:i:s')}}
if podmienka
@if(podmienka) yes @else no @endif
cyklus:
@foreach(['one','two','three'] as $number)
{{$number}}
@endforeach
spustíme
localhost:8000
Do konzoly
php artisan make:controller HomeController
do vytvoreneho suboru v app/Http/Controllers/HomeController.php
public function index()
{
return view('welcome');
}
v routes/web.php :
Route::get('/', [HomeController::class, 'index']);
Do konzoly
php artisan make:model Message
Do konzoly
php artisan make:migration create_messages_table
v database/migration/*timestamp* :
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateMessagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('messages', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('content');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('messages');
}
}
na vytvorenie struktury databazy napisem do konzoly:
php artisan migrate
v resources/views/ vytvorime novy priecinok
master.blade.php vygenerujem hlavicku html a dopisem tam
@yield('content')
- do tela
@yield('title')
- do title
v tej istej strukture (resources/views/) vytvorim
home.blade.php
dopisem tam:
@extends('master')
@section('title','Homepage')
@section('content')
h1 Content! /h1
@endsection
v súbore
app/Http/Controllers/HomeController doplnime:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Message;
class HomeController extends Controller
{
public function index()
{
$messages = Message::all();
return view('home');
}
}
Do kódu v app/Http/Controllers/HomeController doplnte foreach cyklus ktory vypise vsetky spravy
V
resources/views/home.blade.php
@extends('master')
@section('title','Homepage')
@section('content')
Recent messages:
ul
@foreach($messages as $message)
li
strong {{$message->title}} /strong
br
{{$message->content}}
/li
@endforeach
/ul
@endsection
Do kódu v resources/views/home.blade.php pridajte aj cas, kedy bol pridany zaznam
Do kódu v
resources/views/home.blade.php doplnime formular na posielanie
Aby sme mohli komunikovat s databazou doplnime metodu post do
resources/web.php
use App\Http\Controllers\MessageController;
Route::post('/create', [MessageController::class, 'create']);
nasledne si vytvorime MessageControler:
php artisan make:controller MessageController
a dopnime do
app/Http/Controllers/MessageController kod:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Message;
class MessageController extends Controller
{
public function create(Request $request){
$message = new Message();
$message->title = $request->title;
$message->content = $request->content;
$message->save();
return redirect('/');
}
}
do routes/web.php pridame:
Route::get('/message/{id}',[MessageController::class, 'view'])
do app/Http/Controllers/MessageController pridame:
public function view($id){
echo $id;
}
zmenime funkciu view v app/Http/Controllers/MessageController:
public function view($id){
$message = Message::findOrFail($id);
return view('message',['message' => $message]);
}
vytvorime novy blade subor nakopirovanim
resources/views/home.blade.php a pomenujeme ho
message.blade.php jeho obsah bude:
@extends('master')
@section('title',$message->title)
@section('content')
h3{{ $message -> title}}/h3
p{{ $message -> content}}/p
@endsection
doplnime do
resources/views/home.blade.php prepojenie.
Do kódu v resources/views/home.blade.php pridajte prepojenie klikom na nadpis
https://www.tutorialspoint.com/laravel/index.htm
https://laravel.com/
https://laracasts.com/series/laravel-5-fundamentals