2019年1月3日 星期四
Mailtrap.io這個網站真有趣
他是一個假的Smtp Server
只要用Gmail信箱註冊
就可以申請一個假的信箱
那這樣的網站可以怎麼用呢?
假使當你設計一個網站,而且有用到Email寄信功能時
可能因為還在開發中、或者本身電腦尚未安裝sendmail寄信功能
就可以利用到這樣的Fake SMTP Server幫你寄、收信件
Laravel中的.env預設的Mail主機就是MailTrap
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=16xxxxxxxxxxxxx
MAIL_PASSWORD=05xxxxxxxxxxxxx
舉例來說:
假如啟用了Laravel 5.7的EmailVerify功能
使用者註冊後還需要收Email確認
也就是說主機會寄信給使用者
使用者收信點選連結後帳戶才會啟用
這時候MailTrap就可以派上用場了
但由於我們在.env環境設定檔中輸入的是smtp.mailtrap.io
所以儘管大家keyin的Email的信箱多天馬行空
通通都會送到Mailtrap收件匣中
參考網站:
2018年12月25日 星期二
Laravel的一些小技巧 - DB::table(一)
//利用兩層foreach,將資料寫入
//
來源:stackoverflow - How to insert multiple record in laravel
https://stackoverflow.com/questions/29723865/how-to-insert-multiple-rows-from-a-single-query-using-eloquent-fluent
https://stackoverflow.com/questions/40106855/how-to-insert-multiple-rows-in-laravel-5?rq=1
https://stackoverflow.com/questions/39113682/insert-multiple-records-at-once-with-laravel/39389935
https://stackoverflow.com/questions/1307618/multiple-mysql-insert-statements-in-one-query-php
//
$names = array('a','b','c');$ages = array('1','2','3'); foreach($names as $name) { foreach($ages as $age) { DB::table('users')->insert( array('name' => $name, 'age' => $age) ); } }
來源:stackoverflow - How to insert multiple record in laravel
https://stackoverflow.com/questions/29723865/how-to-insert-multiple-rows-from-a-single-query-using-eloquent-fluent
https://stackoverflow.com/questions/40106855/how-to-insert-multiple-rows-in-laravel-5?rq=1
https://stackoverflow.com/questions/39113682/insert-multiple-records-at-once-with-laravel/39389935
https://stackoverflow.com/questions/1307618/multiple-mysql-insert-statements-in-one-query-php
2018年12月23日 星期日
建立HTML表格,並且讓TR變成Form表單
一般傳統設計
我們可能會在FORM表單下包著TABLE,這樣當所有的element要被送出時,我們都會透過submit按鈕將資料全部送出,但假使我們的資料有分區塊呢?
把FORM包在TABLE底下,好像可以區分出好幾列,也可以個別送出表單資料且一如往昔,但是這樣的設計就w3c的規範是不正規的、無效的(DOM沒有這樣規定)。所以當使用javascript要取用DOM元素時,是有問題的,試想FORM的子元素或是TR的子元素,絕對不會是FORM或是TD,這樣想起來就很怪,而且一定出錯。
因此現在很多的網頁設計都改用DIV的方式來設計並把表單包進來。
最近看到一個有趣的設計,可以利用CSS的方式,融合表單以及TABLE的樣式,做出一個像TABLE一樣的表格,而且又可以分區塊送出FORM需要的動作ACTION。主要用的就是display:table、display:table-row、display:table-cell
參考網頁:stackoverflow - Create a HTML table where each TR is a FORM
我們可能會在FORM表單下包著TABLE,這樣當所有的element要被送出時,我們都會透過submit按鈕將資料全部送出,但假使我們的資料有分區塊呢?
把FORM包在TABLE底下,好像可以區分出好幾列,也可以個別送出表單資料且一如往昔,但是這樣的設計就w3c的規範是不正規的、無效的(DOM沒有這樣規定)。所以當使用javascript要取用DOM元素時,是有問題的,試想FORM的子元素或是TR的子元素,絕對不會是FORM或是TD,這樣想起來就很怪,而且一定出錯。
<table> <tr> <form method="GET" action="whatever"> <td><input type="text"/></td> <td><input type="text"/></td> </form> </tr> <tr> <form method="GET" action="whatever"> <td><input type="text"/></td> <td><input type="text"/></td> </form> </tr> </table>
因此現在很多的網頁設計都改用DIV的方式來設計並把表單包進來。
最近看到一個有趣的設計,可以利用CSS的方式,融合表單以及TABLE的樣式,做出一個像TABLE一樣的表格,而且又可以分區塊送出FORM需要的動作ACTION。主要用的就是display:table、display:table-row、display:table-cell
<style> DIV.table { display:table; } FORM.tr, DIV.tr { display:table-row; } SPAN.td { display:table-cell; } </style> ...<br /> <div class="table"> <form action="blah.html" class="tr" method="post"> <span class="td"><input type="text" /></span> <span class="td"><input type="text" /></span> </form> <div class="tr"> <span class="td">(cell data)</span> <span class="td">(cell data)</span> </div> ...</div>
參考網頁:stackoverflow - Create a HTML table where each TR is a FORM
Laravel的一些技巧 - Eloquent(一)
//使用whereIn取得學校列表,函式先取(資料庫欄位的'id', 再取學校陣列)
//School物件是use App\School這個Model
來源:stackoverflow-How to Make Laravel Eloquent “IN” Query?
//School物件是use App\School這個Model
$schools = School::whereIn('id', $select_school)->get(); //DB::table的寫法//$schools = DB::table('schools')->whereIn('id', $select_school)->get();
來源:stackoverflow-How to Make Laravel Eloquent “IN” Query?
2018年12月22日 星期六
Laravel的一些技巧 - Blade (一)
//foreach取學校,最後一間學校不會出現「、」號
//使用$loop變數
來源:stackoverflow-How to remove comma from last array in Laravel 5?
//使用$loop變數
@foreach( $schools as $school) {{ $loop->first ? '' : '、' }} {{ $school->school_name }} @endforeach
來源:stackoverflow-How to remove comma from last array in Laravel 5?
2018年12月20日 星期四
$_ENV環境變數為空值
PHP中的$_ENV是伺服器中環境變數的數組,他是PHP中的超級全域變數,最近學習Laravel時有一.env的環境設定檔,其原理是其設定好的環境設定值,加載到PHP的$_ENV全域變數中。
基於好奇,在未啟動Laravel環境的狀態下,試著在PHP程式中把$_ENV倒出來,可使用的語法有三中
1. var_dump($_ENV);
2. print_r($_ENV);
3.
foreach ($ENV as $key =>$value){
echo $key . "==>" . $value . "<br>"
}
結果發現倒出來的$_ENV全是空值
原來在php.ini中,有一 variables_order設定值,如果是設為GPCS,就不會顯示$_ENV環境變數。G指的是Get、P指的是Post、C指的是Cookie、S指的是Session,而ENV的代表英文為E,所以如果希望$_ENV能撈出伺服器上的環境變數,variables_order就應該設定為EGPCS
variables_order = EGPCS
但是,看了一下,發現如果伺服器上的環境變數被撈光了,好像不太安全,所以其實php.ini的說明中也說了,發行版伺服器的php.ini設定建議還是採用GPCS。
ps.設定完後,要記得重起Apache2
基於好奇,在未啟動Laravel環境的狀態下,試著在PHP程式中把$_ENV倒出來,可使用的語法有三中
1. var_dump($_ENV);
2. print_r($_ENV);
3.
foreach ($ENV as $key =>$value){
echo $key . "==>" . $value . "<br>"
}
結果發現倒出來的$_ENV全是空值
原來在php.ini中,有一 variables_order設定值,如果是設為GPCS,就不會顯示$_ENV環境變數。G指的是Get、P指的是Post、C指的是Cookie、S指的是Session,而ENV的代表英文為E,所以如果希望$_ENV能撈出伺服器上的環境變數,variables_order就應該設定為EGPCS
variables_order = EGPCS
但是,看了一下,發現如果伺服器上的環境變數被撈光了,好像不太安全,所以其實php.ini的說明中也說了,發行版伺服器的php.ini設定建議還是採用GPCS。
ps.設定完後,要記得重起Apache2
2018年12月18日 星期二
把form表單內的資料清空
把form表單內的資料清空
範例1:
$("#client.frm")[0].reset(); //faster version: $("#client")[0].reset();
範例2:
$("#my-form").trigger("reset");
範例3:
document.getElementById("client").reset();
範例1:
$("#client.frm")[0].reset(); //faster version: $("#client")[0].reset();
範例2:
$("#my-form").trigger("reset");
範例3:
document.getElementById("client").reset();
- 參考網站:stackoverflow
訂閱:
文章 (Atom)




