Kategoria - Laravel - liczba wpisów 6

Laravel 10 - CRUD example Kategoria: Laravel | Autor: Bartłomiej Gałęzia

1. Stwórz model

php artisan make:model Company -m

wynik

INFO Model [app/Models/Company.php] created successfully.
INFO Migration [database/migrations/2024_04_21_085712_create_companies_table.php] created successfully.

Zobacz całość

Od razu po ściągnięciu nowego Laravela nie da się uruchomić strony bo system nie znajduje tabeli sessions w bazie.

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sessions' doesn't exist

Można:

1. Wykonać migracje i utworzyć tabelę z sesjami

2. Wyłączyć zapisywanie sesji w bazie:

vim .env
SESSION_DRIVER=database -> SESSION_DRIVER=file

Źródło: https://arjunamrutiya.medium.com/a-comprehensive-guide-to-laravel-sessions-understanding-and-utilizing-session-methods-a454ae9c55e4

Laravel - Modele Kategoria: Laravel | Autor: Bartłomiej Gałęzia

php artisan make:model Post

Model "Post" domyślnie odnosi się do tabeli "posts" w bazie.

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
// use HasFactory;
}

W kontrolerze można odwoływać się do funkcji dziedziczonych z Eloquent\Model:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Post;
class PostController extends Controller {
public function index() {
$posts = Post::all();
return view('pages/posts', ['posts' => $posts]);
}
}

 

W linii poleceń przechodzimy do głównego katalogu strony i wpisujemy:

php artisan make:migration create_posts_table

Następnie edytujemy wygenerowany plik i dopisujemy własne pola:

vim database/migrations/2023_04_25_131201_create_posts_table.php
...

Schema::create('posts', function (Blueprint $table) {
            $table->bigIncrements('id'); //auto increment
            $table->string('title',500);
            $table->string('type',20)->nullable();
            $table->string('image',200)->nullable();
            $table->text('content')->nullable();
            $table->tinyInteger('active')->nullable()->default(1);
            $table->timestamp('date_create')->useCurrent();
            $table->timestamps();
        });
        
...

Następnie uruchamiamy migrację dla pojedynczej tabeli:

php artisan migrate --path=database/migrations/2023_04_25_131201_create_posts_table.php

lub dla wszystkich tabel:

php artisan migrate

 

Źródło: https://stackoverflow.com/questions/45473624/laravel-migrate-specific-files-from-migrations

https://laravel.com/docs/10.x/migrations

Po utworzeniu nowego kontrolera PostController.php nie da się go wywołać.

php artisan make:controller PostController

Zwracany jest jedynie błąd:

Target class [PostController] does not exist.

Rozwiązanie:

vim app/Http/Providers/RouteServiceProvider.php
class RouteServiceProvider extends ServiceProvider
{
    public const HOME = '/home';
    protected $namespace = 'App\Http\Controllers'; //dodane
    
    ...
    
    Route::middleware('web')
	->namespace($this->namespace)  //dodane
        ->group(base_path('routes/web.php'));
    
    ...

Źródło: https://www.nicesnippets.com/blog/laravel-8-target-class-postcontroller-does-not-exist-solved

Laravel - PHP 8.2 install Kategoria: Laravel | Autor: Bartłomiej Gałęzia

composer create-project laravel/laravel example-app

or if you want to install specific version

composer create-project laravel/laravel:10.x example-app

copy index.php and .htaccess from public to root

cp /home/www/laravel/public/index.php /home/www/laravel/index.php
cp /home/www/laravel/public/.htaccess /home/www/laravel/.htaccess
vim /home/www/laravel/index.php
...

if (file_exists($maintenance = __DIR__ . '/storage/framework/maintenance.php')) {
    require $maintenance;
}

...

require __DIR__ . '/vendor/autoload.php';

...

$app = require_once __DIR__ . '/bootstrap/app.php';

...
vim config/app.php
'url' => env('APP_URL', 'http://localhost/laravel') #pierwszy parametr jest pobierany z pliku .env a drugi to default jeśli w .env nie ma takiej zmiennej

Odwołanie do zmiennych w configu

<?php echo config('app.url'); #pierwsza część "app" to nazwa pliku config a druga to nazwa zmiennej ?>

Wyświetlenie zmiennej w widoku

{{ $post['content'] }} #wyświetla jako surowy tekst
{!! $post['content'] !!} #wyświetla jako HTML

Źródło: https://laravel.com/docs/9.x

Wyszukaj

Zapisz się do newsletera