Laravel 路由、參數及按鈕設定 - Setting Routes、 Variables and Button
我們之所以看的到建立的畫面,都是以在 routes/web.php
文件定義路由開始的。可以通過在瀏覽器中輸入定義的路由URL來訪問 routes/web.php
中定義的路由。上一篇我們雖然建立了後台,可是並未創建路由。
在這篇將建立後台路由並且新增參數以便之後應用。
如果現在打開路由,會看到 :
1
2
3
4
5
6
7
8
| //網站首頁
Route::get('/', function () {
return view('welcome');
});
//用戶認證
Auth::routes();
//登入後頁面
Route::get('/home', 'HomeController@index')->name('home');
|
我們在之中加入 :
1
| Route::get('/manage', function () {return view('manage.index');})->name('manage');
|
這段的意思是在 http://127.0.0.1/manage
看到 views/manage/index.blade.php
的內容,並將其命名為 manage
。
之後只要使用 route('member')
就等同呼叫 http://127.0.0.1/manage
。
有時候,在不同的頁面都會用到相同字串,比如說 下一篇 的會員管理,就會使用到權限的設定(新增、修改、刪除)。
如果多個頁面都要使用,何不先定義,之後再引入即可。在./app
底下建立 Enum.php
作為放參數的地方,並直接在裡面加上 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Enum extends Model
{
// 帳號權限
const permission = [
'0' => '一般使用者',
'1' => '限閱',
'2' => '閱讀、新增',
'3' => '閱讀、新增、編輯',
'4' => '閱讀、新增、編輯、刪除',
'5' => '所有權限',
];
}
|
這樣一來,之後只要使用 App/Enum:permission
就可以得到這個陣列下的內容。
同上,之後一定會遇到要建立一堆按鈕的狀況,我們先把按鈕作成 Function
之後直接引入即可。
在./app
底下建立 Button.php
作為放按鈕的地方,並直接在裡面加上 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| <?php
namespace App;
use URL;
use Illuminate\Database\Eloquent\Model;
class Button extends Model
{
public static function Detail($id)
{
$url = URL::full();
echo "<button type=\"submit\" class='btn btn-sm btn-secondary'>";
echo "<i class='fas fa-info-circle'></i> ".trans('Detail');
echo "</a>";
}
public static function Deleting($id)
{
echo "<button type=\"submit\" class='btn btn-sm btn-danger btn-delete' onclick='return confirm(\"確認刪除?\")'>";
echo "<i class='fas fa-trash-alt'></i> ".trans('Delete');
echo "</button>";
}
public static function Edit($id)
{
echo "<button type=\"submit\" class='btn btn-sm btn-success' formtarget='_blank'>";
echo "<i class='fas fa-pencil-alt'></i> " . trans('Edit');
echo "</button>";
}
public static function Create()
{
$url = URL::full();
echo "<a class='btn btn-sm btn-primary' href='{$url}/create'>";
echo "<i class='fas fa-plus'></i> ".trans('Create');
echo "</a>";
}
public static function Reset()
{
echo "<p class='text-right'>";
echo "<a class='btn btn-sm btn-reset btn-danger' href='reset.php'>";
echo "<i class='fas fa-undo-alt'></i> ".trans('Reset');
echo "</a>";
echo "</p>";
}
public static function To($url=false,$to, $txt, $query="", $class="btn-secondary", $fas="list-ol", $confirm=false)
{
$url = $url?URL::full():'';
if ($confirm == true) {
$confirm = 'onclick="return confirm(\'確認刪除?\')"';
}
if ($url) {
echo "<a class='btn btn-sm {$class}' href='{$url}/{$to}/{$query}' {$confirm}>";
}
else{
echo "<a class='btn btn-sm {$class}' href='{$to}/{$query}' {$confirm}>";
}
echo "<i class='fas fa-{$fas}'></i> {$txt}";
echo "</a>";
}
public static function GoBack($url = "#")
{
$target_url = ($url) ? $url: URL::previous();
echo "<a class='btn btn-sm btn-default' href='{$target_url}'>";
echo "<i class='fas fa-arrow-left'></i> ".trans('Previous');
echo "</a>";
}
}
|
這樣一來,之後只要使用 App\Button::GoBack(route('manage'))
就可以回到後台首頁。
Hope it will help !