v2.5.2
Giriş yap

Laravel'de Kullanıcı'nın Blog Eklemesi!

ozgurege
283 defa görüntülendi

Selam dostlar, Laravel 8 ile çalışıyor ve jetstream kullanıyorum. Her kullanıcının blog eklemesini, istiyorum. Php pdo olsa formun sonuna hidden tipinde bir input yapar value'ya da user_id koyardım bu sayede blog tablosuna user_id ile kayıt ederdim.(Laravel'de de aynı şeyi yapmak istiyorum. Laravele 3 gün önce başladım açıklayıcı cevaplar verirseniz sevinirim,şimdiden teşekkürler.)

Cevap yaz
Cevaplar (1)
m100
844 gün önce

öncelikle laravelde routing yapısını kavramalı ve harekete geçmelisin şimdi 2 adet route'umuz olduğunu varsayalım

// get route'umuz 
Route::get('/', [Main::class, 'index'])->name('index');
// ve form'u post ettirecek olan post formumuz
Route::post('/', [Main::class, 'index_post'])->name('index-post');

route için detaylı bilgiye buradan ulaşabilirsin https://laravel.com/docs/8.x/routing

daha sonrasında ise terminali açıp Main isimli bir controller oluşturucaz
" php artisan make:controller Main "
Yazıyoruz
ilgili dizindeki Main controllerını açıp içinde index ve index_post isimli iki adet void oluşturmamız gerekiyor.


    public function index()
    {
        return view('index');
    }

    public function index_post(Request $request)
    {
        echo '<pre>'; print_r($request->post()); echo '</pre>';
    }

Burada bunları yazıp şimdilik bırakıyoruz
-> ben burada index voidinde index blade'ine yönlendiriyorum senin formun nerdeyse oraya yönlendirceksin.

sıra geldi formumuzun olduğu blade sayfasına

burada form'da yapmamız gereken bir veya iki önemli ayrıntıyı göstericem

örnek olarak bir form gösteriyim


<form method="POST" action=" {{ route('index-post') }} ">
		
    <!-- burada csrf tokenimizi tanımlıyoruz -->					
    @csrf
    <div class="row">
        <div class="col-12 col-lg-12 col-xl-12 col-md-12 mb-3">
            <h4 class="ft-medium fs-lg">Adres Ekle</h4>
        </div>
    </div>
    
    <div class="row mb-2">

        <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
            <div class="form-group">
                <label class="text-dark">Adresine Bir İsim Ver *</label>
                <input type="text" name="a_adressName" class="form-control" placeholder="Adres ismi">
            </div>
        </div>

      
        
        <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12">
            <div class="form-group">
                <label class="text-dark">Ad *</label>
                <input type="text" name="a_name" class="form-control" placeholder="Ad">
            </div>
        </div>
        
        <div class="col-xl-6 col-lg-6 col-md-6 col-sm-12 col-12">
            <div class="form-group">
                <label class="text-dark">Soyad *</label>
                <input type="text" name="a_lastName" class="form-control" placeholder="Soyad">
            </div>
        </div>
        
        <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
            <div class="form-group">
                <label class="text-dark">E-posta Adresin *</label>
                <input type="email" name="a_email" class="form-control" placeholder="E-posta">
            </div>
        </div>
        
        <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
            <div class="form-group">
                <label class="text-dark">Şirket</label>
                <input type="text" name="a_company" class="form-control" placeholder="Şirket ismi (opsiyonel)">
            </div>
        </div>
        
        <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12 col-12">
            <div class="form-group">
                <label class="text-dark">Adres *</label>
                <textarea name="a_adress" class="form-control"> </textarea>
            </div>
        </div>
        
        
      
        
        <div class="col-lg-12 col-md-12 col-sm-12">
            <div class="form-group text-center">
                <button type="submit" class="btn btn-dark full-width">Kaydet</button>
            </div>
        </div>	
        
    </div>				
    
</form>


burada laravelde form gönderirken kullanmanın zorunlu olduğu cross site açığını önlemek için yapılan "@csrf" tokenini tanımlamamız gerekiyor
ve form'un action'ına tanımladığımız index_post methodunu yazıyoruz ve sihir bu kadar gönderdiğimiz zaman diğer tarafta post verilerini görebilirsin.