<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Laravel 5 - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<atom:link href="https://www.itoffside.com/tag/laravel-5/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.itoffside.com</link>
	<description>ข้อมูลข่าวสารและเรื่องราวบนโลกของไอทีที่ ล้ำหน้า พร้อมสาระการเขียนโปรแกรมคอมพิวเตอร์</description>
	<lastBuildDate>Sun, 01 Jan 2023 09:54:04 +0000</lastBuildDate>
	<language>th</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.itoffside.com/wp-content/uploads/2020/04/cropped-favicon-96x96-1-32x32.png</url>
	<title>Laravel 5 - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<link>https://www.itoffside.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Laravel &#8211; EP6 การใช้งาน Controller</title>
		<link>https://www.itoffside.com/laravel-5-controller/</link>
					<comments>https://www.itoffside.com/laravel-5-controller/#respond</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Mon, 01 Jul 2019 17:00:01 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Laravel 5]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2890</guid>

					<description><![CDATA[<p>Controller คือหนึ่งในคอนเซปต์ ของ MVC ซึ่งมาจากตัวอักษรย่อ &#8220;C&#8221; นั้นเอง ซึ่งหน้าที่ของมันคือเป็นส่วนจัดการการ การทำงานของระบบ&#160; ซึ่งจะอยู่ระหว่างกลาง ของ Model และ View สำหรับบทความนี้เรามาเรียนรู้เกี่ยวกับdการสร้าง Controller, Middleware controller, resource controller ใน Laravel กัน...</p>
<p>The post <a href="https://www.itoffside.com/laravel-5-controller/">Laravel – EP6 การใช้งาน Controller</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><strong>Controller</strong> คือหนึ่งในคอนเซปต์ ของ <strong>MVC</strong> ซึ่งมาจากตัวอักษรย่อ &#8220;C&#8221; นั้นเอง ซึ่งหน้าที่ของมันคือเป็นส่วนจัดการการ การทำงานของระบบ&nbsp; ซึ่งจะอยู่ระหว่างกลาง ของ Model และ View สำหรับบทความนี้เรามาเรียนรู้เกี่ยวกับdการสร้าง Controller, Middleware controller, resource controller ใน Laravel กันครับ<span id="more-2890"></span></p>
<h3>การสร้าง Controller</h3>
<p>ให้เปิด Command line แล้วพิมพ์คำสั่ง Artisan CLI ตามด้านล่างนี้ครับ</p><pre class="crayon-plain-tag">php artisan make:controller BlogController</pre><p>Laravel จำทำการสร้างไฟล์ Controller มาให้เราเองซึ่งไฟล์จะอยู่ที่ app\Http\Controllers หลังจากนั้นเราเปิดไฟล์ BlogController.php แล้วเราจะเห็นตัวอย่างโค๊ดที่เขียนมาให้แล้ว</p><pre class="crayon-plain-tag">&lt;?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BlogController extends Controller
{
    //
}</pre><p>โดยไฟล์จะถูกสร้างไว้ที่ App/Http/Controllers แต่ถ้าเราไม่ต้องการให้มันสร้างผ่าน Artisan command เราสามารถ Create new file เองก็ได้เช่นกันครับ ไม่มีปัญหา</p>
<p>จากนั้นให้ใส่ ฟังก์ชั่น test() ลงไป จะได้เป็น</p><pre class="crayon-plain-tag">&lt;?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BlogController extends Controller
{
    public function test()
    {
        echo 'Hello world!';
    }
}</pre><p>จากนั้นเราต้องไปกำหนดเส้นทางให้ชี้มาที่ Controller และ ฟังก์ชั่น test() ที่เราสร้าง โดยไปกำหนดที่ routes/web.php</p><pre class="crayon-plain-tag">&lt;?php
Route::get('blog/test', 'BlogController@test');</pre><p>ลองทดสอบ ดูบน Chrome จะได้ผลลัพธ์ ตามรูปภาพด้านล่าง</p>
<p><img decoding="async" class="alignnone size-full wp-image-3135" src="https://www.itoffside.com/wp-content/uploads/2018/11/controller-01.jpg" alt="" width="384" height="105" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/controller-01.jpg 384w, https://www.itoffside.com/wp-content/uploads/2018/11/controller-01-300x82.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/11/controller-01-80x22.jpg 80w" sizes="(max-width: 384px) 100vw, 384px" /></p>
<p>จบแล้วการใช้งาน controller ง่ายไหมครับ สำหรับการใช้งาน Controller ใน Laravel</p>
<h3>Middleware In Controller</h3>
<p>เพิ่มเติมส่วนของการใช้งาน auth midleware ใน Controller ครับ โดยเราสามารถใช้ middleware ได้โดยนำโค๊ดไปใส่ที่ __construct() ลองดูตัวอย่างโค๊ดด้านล่างนี้ครับ</p><pre class="crayon-plain-tag">&lt;?php

namespace App\Http\Controllers;

class BlogController extends Controller
{
    public function __construct()
    {
        $this-&gt;middleware('auth');
    }

    public function test()
    {
        echo 'Hello world!';
    }
}</pre><p>จากตัวอย่างโค๊ดจะสังเกตุเห็นว่า ตอนที่ controller เราจะให้มีการตรวจสอบสิทธิ์ ทุกครั้งก่อนเสมอ</p>
<h3>Resource Controllers</h3>
<p>เป็นการเขียน <strong>Controller</strong> ที่มี <strong>CRUD (Create, Read, Update, Delete)</strong> ครบครัน ด้วยการเขียน <span style="color: #0000ff;">routes/web.php</span> เพียงบรรทัดเดียว เท่านั้น อยากให้นึกภาพให้เห็น การที่ Controller เรามีหลายๆ ฟังก์ชั่น เช่น index(), Create(), Show() เราจำเป็นต้องเขียน Routes หลายบรรทัด เช่น</p><pre class="crayon-plain-tag">Route::get('index', 'BlogController@index');
Route::get('create', 'BlogController@Create');
Route::get('show', 'BlogController@Show');</pre><p>แล้วถ้าใน <strong>controller</strong> มีมากกว่านี้ เราจะทำอย่างไร ดังนั้น <strong>Resource Controller</strong> จะมาช่วยทำ โดยเราเขียน โค๊ดใน Route เพียงการโค๊ด</p><pre class="crayon-plain-tag">Route::resources([
    'blog' =&gt; 'BlogController',    
]);</pre><p>สิ่งที่เราได้จากโค๊ดนี้ เปรียบเสมือนเราเขียน Route แบบนี้ครับ</p>
<div>
<div><span style="color: #0000ff;">Route::get(&#8216;/blog&#8217;, &#8216;BlogController@index&#8217;);</span></div>
<div><span style="color: #0000ff;">Route::get(&#8216;/blog/create&#8217;, &#8216;BlogController@create&#8217;);</span></div>
<div><span style="color: #0000ff;">Route::get(&#8216;/blog/{id}&#8217;, &#8216;BlogController@show&#8217;);</span></div>
<div><span style="color: #0000ff;">Route::get(&#8216;/blog/{id}/edit&#8217;, &#8216;BlogController@edit&#8217;);</span></div>
<div><span style="color: #0000ff;">Route::post(&#8216;/blog&#8217;, &#8216;BlogController@store&#8217;);</span></div>
<div><span style="color: #0000ff;">Route::put(&#8216;/blog/{id}&#8217;, &#8216;BlogController@update&#8217;);</span></div>
<div><span style="color: #0000ff;">Route::delete(&#8216;/blog/{id}&#8217;, &#8216;BlogController@destroy&#8217;);</span></div>
</div>
<div>&nbsp;</div>
<div>คือ Resources จะเตรียมโค๊ดแบบ CRUD มาให้เราเลย ส่วนใน Controller วิธีการสร้างแบบ Resource ให้ generate โค๊ดเอง ทำได้เพียงใช้คำสั่ง</div>
<div>
<pre class="crayon-plain-tag">php artisan make:controller BlogController --resource</pre><br />
<strong>Artisan command</strong> ก็จะ generate ไฟล์พร้อมโค๊ด ที่มีฟังก์ชั่น index(), create(), show($id), edit($id), store($reqeuset), update($reqeust, $id), destroy($id) มาให้เราโดยไม่ต้องพิมพ์ใดๆเลย</p>
<h5><strong>ส่วนความหมายแต่ละฟังก์ชั่นมีดังนี้</strong></h5>
<table>
<thead>
<tr>
<th>Verb</th>
<th>URI</th>
<th>Action</th>
<th>Route Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>GET</td>
<td><code class=" language-php"><span class="token operator">/blog</span></code></td>
<td>index</td>
<td>blog.index</td>
<td>หน้าแรก</td>
</tr>
<tr>
<td>GET</td>
<td><code class=" language-php"><span class="token operator">/blog<span class="token operator">/</span>create</span></code></td>
<td>create</td>
<td>blog.create</td>
<td>หน้า Create</td>
</tr>
<tr>
<td>POST</td>
<td><code class=" language-php"><span class="token operator">/blog</span></code></td>
<td>store</td>
<td>blog.store</td>
<td>ฟังก์ชั่นการ Insert ข้อมูล</td>
</tr>
<tr>
<td>GET</td>
<td><code class=" language-php"><span class="token operator">/blog<span class="token operator">/<span class="token punctuation">{</span>id<span class="token punctuation">}</span></span></span></code></td>
<td>show</td>
<td>blog.show</td>
<td>หน้าแสดงข้อมูลตาม ID</td>
</tr>
<tr>
<td>GET</td>
<td><code class=" language-php"><span class="token operator">/blog<span class="token operator">/<span class="token punctuation">{</span>id<span class="token punctuation">}<span class="token operator">/</span>edit</span></span></span></code></td>
<td>edit</td>
<td>blog.edit</td>
<td>หน้าแก้ไขข้อมูล</td>
</tr>
<tr>
<td>PUT/PATCH</td>
<td><code class=" language-php"><span class="token operator">/blog<span class="token operator">/<span class="token punctuation">{</span>id<span class="token punctuation">}</span></span></span></code></td>
<td>update</td>
<td>blog.update</td>
<td>ฟังก์ชั่นการ Update ข้อมูล</td>
</tr>
<tr>
<td>DELETE</td>
<td><code class=" language-php"><span class="token operator">/blog<span class="token operator">/<span class="token punctuation">{</span>id<span class="token punctuation">}</span></span></span></code></td>
<td>destroy</td>
<td>blog.destroy</td>
<td>ฟังก์ชั่นการ Delete ข้อมูล</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>สำหรับบทความนี้ก็จบเพียงเท่านี้หากมีปัญหาหรือคำถามใดๆ สามารถสอบถามได้ทาง comment ด้านล่างนี้เลยครับ</p><p>The post <a href="https://www.itoffside.com/laravel-5-controller/">Laravel – EP6 การใช้งาน Controller</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/laravel-5-controller/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Laravel &#8211; EP5 การกำหนด Routing</title>
		<link>https://www.itoffside.com/laravel-ep5-routing/</link>
					<comments>https://www.itoffside.com/laravel-ep5-routing/#comments</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Fri, 03 May 2019 04:29:01 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Laravel 5]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<category><![CDATA[php7]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2887</guid>

					<description><![CDATA[<p>ใน Laravel เวลาที่เราเข้าลิงค์ใดๆ ก็ตาม เราจะมี Routing ที่ช่วยกำหนดเส้นทางการเข้าถึงว่าจะให้ไปทำอะไรที่ไหน นะครับ เราเรียกสิ่งนี้ว่า Routing เช่น ผู้ใช้ต้องการเข้าลิงค์ itoffside.com/theboy/1234 เราก็เขียนกำหนดเส้นทางให้ไปทางไหน เป็นต้น โดยทั่วไปแล้วการร้องขอ URL จากผู้ใช้มาแล้ว เราจะกำหนดเส้นทางแล...</p>
<p>The post <a href="https://www.itoffside.com/laravel-ep5-routing/">Laravel – EP5 การกำหนด Routing</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>ใน Laravel เวลาที่เราเข้าลิงค์ใดๆ ก็ตาม เราจะมี Routing ที่ช่วยกำหนดเส้นทางการเข้าถึงว่าจะให้ไปทำอะไรที่ไหน นะครับ เราเรียกสิ่งนี้ว่า Routing เช่น ผู้ใช้ต้องการเข้าลิงค์ itoffside.com/theboy/1234 เราก็เขียนกำหนดเส้นทางให้ไปทางไหน เป็นต้น โดยทั่วไปแล้วการร้องขอ URL จากผู้ใช้มาแล้ว เราจะกำหนดเส้นทางและส่งไปให้กับ Controller ทำงานต่อแทน โดยบทความนี้จะกล่าวถึงกำหนดเส้นทางโดยให้ Controller ทำงานต่อแทนเป็นหลัก<span id="more-2887"></span></p>
<h3>Basic Routing</h3>
<p>&nbsp; &nbsp; เส้นทางการร้องขอทั้งหมดของระบบ Laravel จะถูกผ่านมาที่ <span style="color: #0000ff;">routes/web.php</span> (สำหรับเว็บ ตัวอย่างบทความนี้ใช้ไฟล์นี้ก่อน) หรือ routes/api.php (สำหรับ APi)</p>
<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3108" src="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-01.jpg" alt="" width="328" height="302" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-01.jpg 328w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-01-300x276.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-01-80x74.jpg 80w" sizes="(max-width: 328px) 100vw, 328px" /></p>
<p>ให้เราเปิดไฟล์ routes/web.php&nbsp; เราจะเห็น code เขียน</p><pre class="crayon-plain-tag">Route::get('/', function () {
    return view('welcome');
});</pre><p>หมายความว่าเมื่อ request มาหน้าแรก แล้วให้ แสดง view welcome (อยู่ที่ <span style="color: #0000ff;">resources/views/welcome.blade.php</span>) จะเห็นได้ว่าเราไม่จำเป็นต้องโยนให้ Controller ก็สามารถทำงานได้เหมือนกัน แต่ที่เราให้ routing โยนให้ Controller ทำงานเพราะ Code จะได้เป็นระเบียบเรียบร้อย</p>
<p>ส่วนหากเราต้องการให้ Routing แล้วโยนให้ Controller ทำงานต่อนั้น ทำได้โดยแบบด้านล่างนี้ครับ</p><pre class="crayon-plain-tag">Route::get('/', 'HomeController@index');</pre><p>ความหมายคือเมื่อ request มาหน้าแรก แล้วสั่งให้ Controller ชื่อ HomeController และ Function index() ทำงานครับ เราลองมาสร้าง Controller กันครับ สามารถสร้างได้ 2 แบบคือ</p>
<ol>
<li>สร้างเอง โดยเข้าไปสร้างไฟล์ที่ <span style="color: #0000ff;">app/Http/Controllers/HomeController.php</span></li>
<li>ใช้ Command line Artisan สร้าง โดยให้เราเปิด Command line ในโปรเจ็คของเราก่อนหากใครทำไม่เป็นให้ดูบทความที่ 2 <a href="https://www.itoffside.com/laravel-ep2-install/" target="_blank" rel="noopener noreferrer">https://www.itoffside.com/laravel-ep2-install/</a> เมื่อเราเปิด command line แล้วให้พิมพ์คำสั่ง<br />
<pre class="crayon-plain-tag">php artisan make:controller HomeController</pre><br />
แล้ว artisan จะสร้าง controller ไว้ที่ <span style="color: #0000ff;">app/Http/Controllers</span> ให้เราเลยครับ ง่ายๆไหมครับ</li>
<li>สร้าง function index ใน HomeController<br />
<img decoding="async" class="alignnone size-full wp-image-3109" src="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-02.jpg" alt="" width="508" height="347" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-02.jpg 508w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-02-300x205.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-02-80x55.jpg 80w" sizes="(max-width: 508px) 100vw, 508px" /></li>
</ol>
<p>เพียงเท่านี้ครับสำหรับการให้ Routing โยนให้ Controller ทำงานต่อแล้ว Controller ก็จะทำงานตามที่เราเขียน code ไว้</p>
<h3>Route Parameters</h3>
<p>&nbsp; &nbsp; ในบางครั้งในเว็บ เราจำเป็นต้องมีค่า parameter ส่งไปทาง url เช่น <span style="color: #0000ff;">itoffside.com/product/1234</span> จะเห็นว่า parameter 1234 นั้นเป็นค่าที่อาจจะเป็นค่าอื่นได้เช่นกันเช่น 5678 สำหรับ Routing laravel ก็มีวิธีการส่งค่าเหมือนกัน เรามาดู code กันว่าเขียนแบบไหน</p>
<p>ใน <span style="color: #0000ff;">routes/web.php</span> เขียนต่อจากอันเดิมเป็น</p><pre class="crayon-plain-tag">Route::get('product/{id}', 'HomeController@product');</pre><p>จะเห็นว่าเรามีการส่ง parameter {id} ไปด้วย (ชื่ออาจจะเป็นอย่างอื่นก็ได้ไม่จำเป็นต้องเป็น id เอาตามความเข้าใจของเรา) โดย parameter ต้องคลุมด้วย {} เสมอ</p>
<p>แล้วเราก็ไปเขียน code ใน HomeController เพิ่มในบรรทัดที่ 14-17</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3110" src="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-03.jpg" alt="" width="494" height="464" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-03.jpg 494w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-03-300x282.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-03-80x75.jpg 80w" sizes="auto, (max-width: 494px) 100vw, 494px" /></p>
<p>จาก code หมายถึงเรา สร้าง function product แล้วรับ parameter ที่ <strong>routing</strong> ส่งมาให้เรา ลองมาดูผลลัพท์ของ code กัน<br />
<span style="color: #808080;"><em>ปล. อย่าลืม เปิด command แล้ว run คำสั่ง &nbsp;php artisan serve ด้วยนะครับ</em></span></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3111" src="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-04.jpg" alt="" width="436" height="135" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-04.jpg 436w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-04-300x93.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/11/routing-laravel-04-80x25.jpg 80w" sizes="auto, (max-width: 436px) 100vw, 436px" /></p>
<p>จะเห็นว่าผม request url เป็น product/1234 แล้วใน controller ผมสั่งให้ แสดง parameter 1234 ก็เลยได้ผลลัพท์ตามรูปภาพด้านบน</p>
<h3>Routing Methods</h3>
<p>&nbsp; &nbsp; Routing methods คือหนึ่งอย่างที่ Laravel มีความพิเศษ เพราะว่าเราสามารถกำหนด <strong>HTTP Verb</strong> ได้เช่นเราอยากให้ routing นี้เป็น <strong>GET, POST, PUT, DELETE</strong> แบบง่ายๆเลย ลองดูตัวอย่าง</p><pre class="crayon-plain-tag">Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);</pre><p>ผมจะยกตัวอย่างการใช้งาน HTTP Verb ประเภท POST</p>
<p>ในหน้า view ผมเขียน form จะเป็นแบบนี้</p><pre class="crayon-plain-tag">&lt;form method="POST" action="/product"&gt;
    @csrf
    ...
&lt;/form&gt;</pre><p>โปรดระวังหากเรา request ไม่ตรง verb จะเกิด error ทันที</p>
<h3>Routing Groups prefix</h3>
<p>&nbsp; &nbsp; เป็นการจัดกลุ่ม <strong>routing</strong> โดยอ้างอิงชื่อ prefix ที่เราไม่จำเป็นต้องมาสร้างชื่อซ้ำๆเดิม ยกตัวอย่างเช่นคุณมี Routing&nbsp;</p><pre class="crayon-plain-tag">Route::get('product/{id}', 'productController@show');
Route::post('product', 'productController@store');
Route::put('product/{id}', 'productController@update');
Route::delete('product/{id}', 'productController@destroy');</pre><p>จะเห็นว่าชื่อ product เรียงกัน ซึ่งเราสามารถจัดเป็นกลุ่มของ prefix &#8220;product&#8221; ได้โดยเขียนคำสั่งนี้ไป</p><pre class="crayon-plain-tag">Route::prefix('product')-&gt;group(function () {
    Route::get('{id}', 'productController@show');
    Route::post('', 'productController@store');
    Route::put('{id}', 'productController@update');
    Route::delete('{id}', 'productController@destroy');
});</pre><p></p>
<h3>สรุป</h3>
<p>&nbsp; &nbsp; <strong>Routing ใน Laravel</strong> นั้นจำเป็นอย่างมาก เพราะ ทุก Request เราต้องควบคุมผ่าน <strong>Routing</strong> นี้โดย Routing ของ laravel ไม่ได้ Generate อัตโนมัติเหมือน <strong>Codeigniter</strong> ที่มีรูปแบบ <span style="color: #0000ff;">project/controller/methods/{id}</span> ที่เขียนง่าย เริ่มต้นได้ง่าย แต่สำหรับ laravel เราต้องมากำหนด routing เอง ซึ่งตอนแรกอาจจะคิดว่าลำบาก ยาก แต่หากได้ใช้ไปสักพักแล้วมันเป็นอะไรที่ง่ายและสะดวก ดังนั้นเราจึงจำเป็นต้องเรียนรู้และเข้าใจ เพราะหากเราเข้าใจแล้ว เราจะสามรถเขียนเว็บ/ระบบ ได้ดังใจเราต้องการ</p><p>The post <a href="https://www.itoffside.com/laravel-ep5-routing/">Laravel – EP5 การกำหนด Routing</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/laravel-ep5-routing/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Laravel &#8211; EP4 การตั้งค่า Laravel และเครื่องมือที่ใช้ในการพัฒนา</title>
		<link>https://www.itoffside.com/laravel-ep4-config-and-tool/</link>
					<comments>https://www.itoffside.com/laravel-ep4-config-and-tool/#respond</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Thu, 25 Apr 2019 10:05:27 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Laravel 5]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<category><![CDATA[php7]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2885</guid>

					<description><![CDATA[<p>ในบทความก่อนหน้านี้เราพูดถึงพื้นฐานของ Laravel แต่ในบทความนี้เรามาพูดถึงวิธีการตั้งค่า Laravel ให้ตรงตามสภาพแวดล้อมของเครื่องเราและเครื่องมือที่ใช้ในการพัฒนาระบบ/โปรแกรม กันนะครับ การตั้งค่าตามสภาพแวดล้อม (Environment Configuration) สำหรับการตั้งค่าตามสภาพแวดล้อมในที่นี้ผมเรียกสั้นว่า env ครับ โดยเร...</p>
<p>The post <a href="https://www.itoffside.com/laravel-ep4-config-and-tool/">Laravel – EP4 การตั้งค่า Laravel และเครื่องมือที่ใช้ในการพัฒนา</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>ในบทความก่อนหน้านี้เราพูดถึงพื้นฐานของ Laravel แต่ในบทความนี้เรามาพูดถึงวิธีการตั้งค่า Laravel ให้ตรงตามสภาพแวดล้อมของเครื่องเราและเครื่องมือที่ใช้ในการพัฒนาระบบ/โปรแกรม กันนะครับ<span id="more-2885"></span></p>
<h3>การตั้งค่าตามสภาพแวดล้อม (Environment Configuration)</h3>
<p>สำหรับการตั้งค่าตามสภาพแวดล้อมในที่นี้ผมเรียกสั้นว่า env ครับ โดยเราสามารถเข้าไปตั้งที่ไฟล์ .env หากไม่มี ให้ทำการ copy .env.example แล้ว rename ชื่อเป็น .env ครับ ตามรูปภาพด้านล่าง</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3103" src="https://www.itoffside.com/wp-content/uploads/2018/11/config-laravel-01.jpg" alt="" width="302" height="139" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/config-laravel-01.jpg 302w, https://www.itoffside.com/wp-content/uploads/2018/11/config-laravel-01-300x139.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/11/config-laravel-01-80x37.jpg 80w" sizes="auto, (max-width: 302px) 100vw, 302px" /></p>
<p>แล้วเปิดเข้าไฟล์ .evn จะได้ตาม code ด้านล่าง</p><pre class="crayon-plain-tag">APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:3FsGSgfxzhqvXdVqgt+J4slG50AnzqZsc+kxp1pKgzs=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"</pre><p><strong>Code ที่ต้องแก้ไข</strong></p>
<p><span style="color: #ff00ff;">APP_NAME=Laravel</span> (ชื่อแอพลิเคชั่นของเรา)<br />
<span style="color: #ff00ff;"><span class="crayon-i">APP_DEBUG</span>=</span><span class="crayon-t"><span style="color: #ff00ff;">true</span>&nbsp; (เปิดโหมด debug หากเอาขึ้น Production ให้ false)<br />
<span style="color: #ff00ff;">APP_URL=http://localhost</span> (url ระบบ ของเรา)<br />
<span style="color: #ff00ff;">DB_CONNECTION=mysql</span> (ชื่อยีห้อของฐานข้อมูลที่เราใช้)<br />
<span style="color: #ff00ff;">DB_HOST=127.0.0.1</span> (url ฐานข้อมูล)<br />
<span style="color: #ff00ff;">DB_PORT=3306</span> (พอร์ต ฐานข้อมูล)<br />
</span><span style="color: #ff00ff;">DB_DATABASE=homestead</span> (ชื่อฐานข้อมูล)<br />
<span style="color: #ff00ff;">DB_USERNAME=homestead</span> (user ฐานข้อมูล)<br />
<span style="color: #ff00ff;">DB_PASSWORD=secret</span> (รหัสผ่านฐานข้อมูล)</p>
<p><span style="color: #ff00ff;">APP_KEY=base64:3FsGSgfxzhqvXdVqgt+J4slG50AnzqZsc+kxp1pKgzs=</span><br />
สำหรับ APP_KEY หากยังไม่มีเราสามารถ Generate ได้โดยเปิด command line (<a href="https://www.itoffside.com/laravel-ep2-install/" target="_blank" rel="noopener noreferrer">วิธีการเปิด Command line</a>) แล้วพิมพ์คำสั่งตาม ด้านล่าง</p><pre class="crayon-plain-tag">php artisan key:generate</pre><p><strong>สำคัญ ตอนที่เราเอาโปรเจ็คขึ้น Server (Production)</strong> แล้ว เราไม่ควรนำไฟล์ .env ขึ้นไปด้วย ให้เราไป config ที่ ไฟล์ที่อยู่โฟล์เดอร์ config แทน เช่น เราต้องการ url เราไปแก้ที่ config/app.php ในบรรทัดที่ 55 ตาม Code ด้านล่าง</p><pre class="crayon-plain-tag">'url' =&gt; env('APP_URL', 'http://itoffside.com'),</pre><p>หากต้องการแก้ไขฐานข้อมูล ตั้งค่า config ที่ config/database.php</p>
<p>หลังจากเรา Config เสร็จแล้ว ไม่ว่าจะเป็นตอนเราพัฒนาหรือตอนเราเอาขึ้น Production ให้เปิด Command line แล้วพิมพ์คำสั่งด้านล่าง</p><pre class="crayon-plain-tag">php artisan config:clear</pre><p>เพื่อเคลียร์ config เก่า แล้วใช้ config ที่เราเพิ่งทำใหม่</p><pre class="crayon-plain-tag">php artisan config:cache</pre><p>เพื่อเก็บ cache config ไว้ทำให้โปรเจ็คเราทำงานได้เร็วขึ้น</p>
<h3>เครื่องมือที่ใช้ในการพัฒนา (Dev Tool)</h3>
<ul>
<li>การเขียน Code เราใช้ <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">VSCode</a>
<ul>
<li>ให้เราติดตั้ง Extension ดังต่อไปนี้
<ul>
<li>DotENV</li>
<li>Laravel Blade Snippets</li>
<li>Laravel Blade spacer</li>
<li>Laravel-blade</li>
<li>Laravel goto view</li>
<li>laravel-goto-controller</li>
<li>PHP IntelliSense</li>
<li>PHP Debug</li>
<li>phpfmt &#8211; PHP formatter</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://www.apachefriends.org" target="_blank" rel="noopener noreferrer">XAMPP</a> เวอร์ชั่น 7+ (เป็นโปรแกรมจำลอง Server ในเครื่องเรา)</li>
<li>Git (ใช้ <a href="https://github.com/" target="_blank" rel="noopener noreferrer">github ต้องสมัครก่อน ฟรี</a>) เอาไว้เก็บ Code และควบคุม Version ของ Code</li>
<li><a href="https://desktop.github.com/" target="_blank" rel="noopener noreferrer">Github Desktop</a> (เป็น gui เพื่อเราไม่ต้องเขียนคำสั่ง git เช่น commit push เป็นต้น)</li>
</ul>
<p>เครื่องมือในการพัฒนา ที่แนะนำคือ VSCode พร้อมติดตั้ง extension ให้ครบครับเพื่อความเร็วในการทำงานของเราเอง เนื่องจาก extension เหล่านี้มีประโยชน์ เป็นเครื่องทุ่นแรงของเราได้ดีทีเดียว</p>
<h3>สรุป</h3>
<p>&nbsp; &nbsp; สำหรับการตั้งค่า เราสามารถตั้งค่าได้ง่ายๆ หากเรากำลังพัฒนาอยู่ ให้ตั้งค่าที่ไฟล์ .env แต่หากเราเอาขึ้น Production แล้ว ต้องไปค่าที่ โฟล์เดอร์ config แทน</p>
<p>&nbsp; &nbsp; เครื่องมือการพัฒนานั้นเป็นสิ่งที่ผู้เขียนถนัดใช้งาน และใช้อยู่เป็นประจำ หากเราไม่ถนัดก็สามารถใช้อย่างอื่นก็ได้เช่น sublime text เป็นต้น</p><p>The post <a href="https://www.itoffside.com/laravel-ep4-config-and-tool/">Laravel – EP4 การตั้งค่า Laravel และเครื่องมือที่ใช้ในการพัฒนา</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/laravel-ep4-config-and-tool/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Laravel &#8211; EP3 โครงสร้างของระบบ Laravel</title>
		<link>https://www.itoffside.com/laravel-ep3-application-structure/</link>
					<comments>https://www.itoffside.com/laravel-ep3-application-structure/#respond</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Thu, 25 Apr 2019 05:12:10 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Laravel 5]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<category><![CDATA[php7]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2883</guid>

					<description><![CDATA[<p>โครงสร้างของ Laravel ประกอบไปด้วยโฟล์เดอร์และไฟล์ย่อยต่างๆ สำหรับบทความนี้เราจะเห็นภาพรวมว่าแต่ละโฟล์เดอร์ ทำหน้าที่และเก็บอะไรกันบ้าง โดยโฟล์เดอร์ที่จำเป็นต้องใช้งานบ่อยๆ App Http Controller (ควบคุมการทำงาน) Middleware (ตัวกลางระหว่างการทำงานของ system กับ Controller) config (ตั้งค่าระบบ) database ...</p>
<p>The post <a href="https://www.itoffside.com/laravel-ep3-application-structure/">Laravel – EP3 โครงสร้างของระบบ Laravel</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><strong>โครงสร้างของ Laravel</strong> ประกอบไปด้วยโฟล์เดอร์และไฟล์ย่อยต่างๆ สำหรับบทความนี้เราจะเห็นภาพรวมว่าแต่ละโฟล์เดอร์ ทำหน้าที่และเก็บอะไรกันบ้าง<span id="more-2883"></span></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3100" src="https://www.itoffside.com/wp-content/uploads/2019/04/skl-laravel-02.jpg" alt="" width="254" height="229" srcset="https://www.itoffside.com/wp-content/uploads/2019/04/skl-laravel-02.jpg 254w, https://www.itoffside.com/wp-content/uploads/2019/04/skl-laravel-02-80x72.jpg 80w" sizes="auto, (max-width: 254px) 100vw, 254px" /></p>
<p>โดยโฟล์เดอร์ที่จำเป็นต้องใช้งานบ่อยๆ</p>
<ul>
<li><strong>App</strong>
<ul>
<li>Http
<ul>
<li>Controller (ควบคุมการทำงาน)</li>
<li>Middleware (ตัวกลางระหว่างการทำงานของ system กับ Controller)</li>
</ul>
</li>
</ul>
</li>
<li><strong>config</strong> (ตั้งค่าระบบ)</li>
<li><strong>database</strong> (จัดการฐานข้อมูล เช่น สร้าง แก้ไข และเพิ่มข้อมูลเบื้องต้น)</li>
<li><strong>public</strong> (หลังจาก complie js,css, image แล้วไฟล์จะอยู่ที่นี้)</li>
<li><strong>resources</strong>
<ul>
<li>js (สำหรับเขียน javascript)</li>
<li>lang (ทำเว็บหลายภาษา)</li>
<li>sass (เขียน style ให้กับระบบ)</li>
<li>view (หน้า ui ของระบบ)</li>
</ul>
</li>
<li><strong>routes</strong> (กำหนดเส้นทาง URL)</li>
<li><strong>storage</strong> (จัดเก็บไฟล์ session, cache, หรือไฟล์อัพโหลดของเรา)</li>
<li><strong>vendor</strong> (ที่เก็บ package จาก composer)</li>
</ul>
<p>&nbsp; &nbsp; เนื่องจาก <strong>Laravel</strong> เป็น <strong>MVC</strong> ดังนั้นเวลาเขียน <strong>Controller</strong> ให้เขียนไว้ที่ <span style="color: #333399;">App/Http/Controller</span>, เขียน <strong>Model</strong> ให้เขียนไว้ที่ App หรือ เราสร้างโฟล์เดอร์ใหม่ แล้วเอาไว้ที่ <span style="color: #333399;">App/Models</span> แบบนี้ก็ได้, เขียน <strong>View</strong> ให้เราไปเขียนไว้ที่ <span style="color: #333399;">resources/view</span></p>
<p>&nbsp; &nbsp; ส่วนการเขียนพวก <strong>javascript</strong> ให้เขียนไว้ที่ <span style="color: #333399;">resources/js</span> แล้ว complie โดยใช้ webpack (มีสอนบทหลัง), <strong>css</strong> ก็เช่นกันให้เขียนไว้ที่ <span style="color: #333399;">resources/css</span> หากไม่มีให้สร้าง โฟล์เดอร์ css หรือคุณจะเขียน sass ก็ได้เพราะอย่างไรก็ต้อง complie อยู่ดี</p>
<p>&nbsp; &nbsp;ส่วนอื่นๆผมยังไม่ได้พูดถึงนะครับ ผมเล่าในส่วนที่ใช้บ่อยก่อน</p>
<p>สำหรับบทความนี้ก็มีเพียงเท่านี้หากใครมีข้อสงสัยแสดงความคิดเห็นไว้ข้างล่างนี้เลยครับ</p><p>The post <a href="https://www.itoffside.com/laravel-ep3-application-structure/">Laravel – EP3 โครงสร้างของระบบ Laravel</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/laravel-ep3-application-structure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
