Popular Post

Contoh Input Data pada Framework Laravel

By : Unknown
Picrure from http://scotch.io/tutorials/simple-laravel-crud-with-resource-controllers

Hai
Input data pada suatu program merupakan suatu hal yang pasti. Hal ini karena suatu program harus bisa menangani input, proses pengolahan data, dan output. Pada tutorial kali ini, saya akan memerikan langkah-langkah yang harus dilakukan untuk melakukan input data pada framework Laravel. Dengan nama table contact serta filed-field sebagai berikut :
  1. id, digunakan sebagai primary key pada table ini
  2. full_name, digunakan untuk menyimpan nama lengkap pengunjung web
  3. email, digunakan untuk menyimpan email
  4. message, digunakan untuk menyimpan pesan
  5. created_at, digunakan untuk menyimpan data waktu input pada saat menyimpan
  6. updated_at, digunakan untuk menyimpan data waktu pada saat mengubah data
Berikut adalah tampilan pada phpmyadmin nya



Baiklah, langsung saja. Berikut adalah langkah-langkahnya : 

Langkah 1 - Setting Database

Buka file  app/config/database.php   kemudian cari syntax seperti dibawah ini :

'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => '<DATABASE KAMU>', 'username' => 'root', 'password' => '<PASSWORD KAMU>', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),

Ganti <DATABASE KAMU> sesuai dengan nama database yang kamu gunakan serta ganti juga <PASSWORD KAMU> dengan password phpmyadmin kamu.

Langkah 2 - Buat File Controller

Pada langkah ini, saya akan membuat file controller dengan bantuan COMPOSER, untuk cara yang biasa, kamu bisa langsung membuat file controller pada folder app/controllers  kemudian buat file dengan nama contact.php

Berikut adalah cara membuat file controller dengan bantuan Composer 
  • Klik kanan pada folder laravel kamu, pada komputer saya, saya menggunakan nama folder belajar. Kemudian pilih Use Composer Here

  • Kemudian muncul command promt seperti gambar dibawah, kemudian ketikkan 
         php artisan controller:make ContactController


  • Buka file app/controller/ContactController.php  . Laravel akan membuat file ContactController.php secara otomatis dengan beberapa function di dalamnya.
// app/controllers/NerdController.php

<?php

class ContactController extends \BaseController {

 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index()
 {
  //
 }

 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function create()
 {
  //
 }

 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
  //
 }

 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
  //
 }

 /**
  * Show the form for editing the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function edit($id)
 {
  //
 }

 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
  //
 }

 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
  //
 }

}

Lankah 3 - Membuat File Model

Buat file model pada folder app/model/contact.php dan ketikan syntaxt dibawah ini :

// app/models/Nerd.php

<?php

 class Contact extends Eloquent
 {
 
}   

Langkah 4 - Tambahkan Setting pada Routes

Setelah kita membuat file controller, pada file app/Routes.php  tambahkan syntax seperti dibawah ini :

// app/routes.php

<?php

 Route::resource('contact', 'ContactController');

Laravel secara otomatis akan menghandle sumber pada ContactContoller, jadi kita tidak perlu membuat routes lain pada file routes.php. Kita bisa melihat action apa saja yang telah dihandle oleh aplikasi kita dengan mengetikan php artisan routes  pada command promt yang telah kita buka sebelumnya.

 


Langkah 5 - Buat file View dan tambahkan file Controller

Pertama-tama tambahkan syntax dibawah pada file app/controller/ContactController.php

// app/controllers/ContactController.php

<?php

...

 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function create()
 {
  // load the create form (app/views/contact/create.blade.php)
  return View::make('contact.create');
 }

...

Serta file controller : 

// app/controllers/ContactController.php

<?php

...

 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
  // validate
  // read more on validation at http://laravel.com/docs/validation
  $rules = array(
   'full_name'  => 'required',
   'email'      => 'required|email',
   'message'    => 'required'
  );
  $validator = Validator::make(Input::all(), $rules);

  // process the login
  if ($validator->fails()) {
   return Redirect::to('contact/create')
    ->withErrors($validator)
    ->withInput(Input::except('password'));
  } else {
   // store
   $contact             = new Contact;
   $contact->full_name  = Input::get('full_name');
   $contact->email      = Input::get('email');
   $contact->message    = Input::get('message');
   $contact->save();

   // redirect
   Session::flash('message', 'Input data sukses!');
   return Redirect::to('contact');
  }
 }

...


Buat file app/view/contact/create.blade.php
<!-- app/views/contact/create.blade.php -->

<!DOCTYPE html>
<html>
<head>
 <title>Contact</title>
 <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
</head>
<body>
<div class="container">

<nav class="navbar navbar-inverse">
 <div class="navbar-header">
  <a class="navbar-brand" href="{{ URL::to('contact') }}">Contact</a>
 </div>
 <ul class="nav navbar-nav">
  <li><a href="{{ URL::to('contact') }}">View All</a></li>  <li><a href="{{ URL::to('contact/create') }}">Create</a> </ul>
</nav>

<h1>Input Data Contact</h1>

<!-- if there are creation errors, they will show here -->
{{ HTML::ul($errors->all()) }}

{{ Form::open(array('url' => 'contact')) }}

 <div class="form-group">
  {{ Form::label('full_name', 'Name') }}
  {{ Form::text('full_name', Input::old('full_name'), array('class' => 'form-control')) }}
 </div>

 <div class="form-group">
  {{ Form::label('email', 'Email') }}
  {{ Form::email('email', Input::old('email'), array('class' => 'form-control')) }}
 </div>

 <div class="form-group">
  {{ Form::label('message', 'Nerd Level') }}
  {{ Form::textarea('message', Input:old('message'), array('class' => 'form-control')) }}
 </div>

 {{ Form::submit('Submit', array('class' => 'btn btn-primary')) }}

{{ Form::close() }}

</div>
</body>
</html>

Setelah selesai, berikut adalah tampilan jika Anda berhasil





Apabila Anda klik submit, maka tampilannya akan seperti dibawah : 


dan tambahan file pada database seperti dibawah ini :



Sekian tutorial Laravel tentang input data. Terima kasih.

Mari Mengenal Blade - Template Engine untuk Laravel

By : Unknown


Halo, kembali lagi pada artikel tentang Laravel. Kali ini saya akan membahas tentang Blade, bukan pisau atau pedang tapi blade yang ini merupakan sebuah template engine bawaan Laravel. 

Apakah Template Engine?

Template Engine sendiri merupakan suatu cara/metode (syntax) yang digunakan untuk mempersingkat penulisan suatu koding yang lebih panjang. Pada dasarnya PHP sendiri merupakan suatu cara yang digunakan untuk mempersingkat penulisan syntax HTML.

Contoh yang pertama adalah penulisan pada file PHP biasa.
<?php 
    $html = '';
    $html .= '<ul>';
    foreach($posts as $post){
        $html .= '<li>' . $post->title . '</li>';
    }
    $html .= '</ul>';    

    echo $html;
?>
Contoh berikut adalah contoh dari CodeIgniter
...
<ul>
    <?php foreach($posts as $post): ?>
    <li> <?php echo $post->title ?> </li>
    <?php endforeach; ?>        
</ul>
...

Kedua syntax diatas memiliki output yang sama. Namun keduanya belum memanfaatkan template engine. Kedua syntax diatas hanya digunakan sebagai sebuah bahasa pengolahan string (HTML).

Dari kedua syntax diatas pun lebih mudah untuk memahami syntax kedua. Dengan menuliskan tag HTML sebagai tag HTML (Tidak menggunakan tanda petik (')), maka pembacaan syntax pun akan lebih mudah dipahami.


Apakah Blade?

Blade adalah template engine bawaan Laravel. Blade menawarkan syntax yang lebih mudah untuk menghasilkan dokumen HTML.

Contoh syntax menggunakan blade :
...
<ul>
    @foreach($posts as $post)
    <li> {{ $post->title }} </li>
    @endforeach       
</ul>
...
Keluaran untuk syntax diatas juga identik dengan syntax pertama dan kedua. Jauh lebih singkatkan. 


Syntax Blade

Ada beberapa syntax Blade yang sering digunakan pada Laravel. Berikut adalah beberapa contohnya :

Echo variable

Halo bro {{ $name }}

// identik dengan:
Halo bro <?php echo $name ?>

Echo variable dengan aman (escape html)

Halo bro {{{ $name }}}

// identik dengan:
Halo bro <?php echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ?>

Echo variable atau default value (Laravel versi 4.1)

Halo bro {{ $name or 'guest' }}

// identik dengan:
Halo bro <?php echo isset($name)?$name:'guest' ?>

Kondisional

@if (count($posts) === 1)
    Ada satu tulisan baru
@elseif (count($posts) > 1)
    Ada beberapa tulisan baru
@else
    Tidak ada tulisan baru
@endif


// kebalikan dari if, hanya dijalankan jika kondisi TIDAK terpenuhi
@unless ($isLogin)
    Anda tidak berhak mengakses halaman ini
@endunless

Iterasi

@for ($i = 0; $i < 10; $i++)
    <span>nilai i = {{ $i }}<span>
@endfor

@foreach ($posts as $post)
    <p>Judul = {{ $post->title }}</p>
@endforeach

@while (true)
    <p>Forever alone... eh, forever looping</p>
@endwhile

Include sub-view

@include('folder.subview')

// passing variable
@include('folder.subview', array('var1' => 'value1'))   

Komentar

{{-- Ini komentar, tidak akan ditampilkan --}}     


Bagaimana Cara Kerja Blade ?

Anda dapat menggunakan blade cukup dengan mengubah file name sample.php dengan sample.blade.php. Selanjutnya Laravel akan otomatis menerjemahkan tag-tag yang berkesesuaian.

Lanjut saja, berikut adalah contoh penggunaannya :

Route::get('contoh-blade', function(){

    return View::make('blade-sample');

});
Simpan file diatas pada file  app/routes.php:


Kemudian buat file dengan nama  app/views/blade-sample.blade.php:

@foreach(array(1,2,3) as $i)
{{ $i }}
@endforeach
Hasilnya adalah sebagai berikut : 


Kemudian kita bisa melihat hasil terjemahan blade pada : app/storage/views . Pada komputer saya, file hasil terjemahannya bernama : 56694480c76cb0157c09cdc48449b202  . Dan isi dalam file tersebut adalah sebagai berikut : 

<?php foreach(array(1,2,3) as $i): ?>
<?php echo $i; ?>
<?php endforeach; ?>

Sekian artikel tentang template engine Blade pada Laravel.
Stay tune di blog ane ye cuy.......

- Copyright © Fadli Weleh - Date A Live - Powered by Blogger - Designed by Johanes Djogan -