😁 😍 Forms & HTML (ok)
https://laravelcollective.com/docs/6.x/html
resources\views\welcome.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
<!-- Styles -->
<style>
html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-t{border-top-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.dark\:text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}}
</style>
<style>
body {
font-family: 'Nunito', sans-serif;
}
</style>
</head>
@php
$user = 1;
@endphp
<body class="antialiased">
{!! Form::open(['route' => 'test', 'files' => true]) !!}
{!! Form::label('email', 'E-Mail Address') !!}
{!! Form::text('username','aaaa1', ['class' => 'form-control']) !!}
{!! Form::password('password', ['placeholder'=>'Password','class' => 'awesome']) !!}
{!! Form::checkbox('name', 'value',true) !!}
{!! Form::radio('name', 'value',false) !!}
{!! Form::number('name',123) !!}
{!! Form::date('name', \Carbon\Carbon::now()) !!}
{!! Form::file('image') !!}
{!! Form::select('size', ['L' => 'Large', 'S' => 'Small']) !!}
{!! Form::select('animal',['Cats' => ['leopard' => 'Leopard'], 'Dogs' => ['spaniel' => 'Spaniel']]) !!}
{!! Form::selectRange('number', 10, 20) !!}
{!! Form::selectMonth('month') !!}
{!! Form::myField() !!}
{!! Form::bsText('v1','v1',['attributes'=>'v3']) !!}
{{ link_to('foo/bar', $title = "Title", $attributes = [], $secure = null) }}
{{ link_to_asset('foo/bar.zip', $title = "Zip", $attributes = ['abc'=>'abc1'], $secure = true) }}
{{ link_to_route('test', $title = 'link_to_route', $parameters = ["abc"=>'abc2',"bcd"=>'abc3'], $attributes = []) }}
{{ link_to_action('HomeController@test',$title = 'link_to_action', $parameters = [], $attributes = ["abc"=>'abc4',"bcd"=>'abc5']) }}
{!! Form::submit('Click Me!') !!}
{!! Form::close() !!}
{{ Form::model($user, array('route' => array('test',1))) }}
{{ Form::label('first_name', 'First Name:', array('class' => 'address')) }}
{{ Form::text('first_name') }}
{{ Form::label('last_name', 'Last Name:', array('class' => 'address')) }}
{{ Form::text('last_name') }}
{{ Form::label('email', 'E-Mail Address', array('class' => 'address')) }}
{{ Form::text('email') }}
{{ Form::label('address[street1]', 'Address (Street 1)', array('class' => 'address')) }}
{{ Form::text('address[street1]') }}
{{ Form::label('address[street2]', 'Address (Street 2)', array('class' => 'address')) }}
{{ Form::text('address[street2]') }}
{{ Form::label('ddress[city]', 'City', array('class' => 'address')) }}
{{ Form::text('address[city]') }}
{{ Form::label('address[state]', 'State', array('class' => 'address')) }}
{{ Form::text('address[state]') }}
{{ Form::label('address[zip]', 'Zip Code', array('class' => 'address')) }}
{{ Form::text('address[zip]') }}
{{ Form::submit('Send this form!') }}
{{ Form::close() }}
</body>
</html>
resources\views\components\form\text.blade.php
<div class="form-group">
{{ Form::label($name, null, ['class' => 'control-label']) }}
{{ Form::text($name, $value, array_merge(['class' => 'form-control'], $attributes)) }}
</div>
routes\web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController as HomeController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('test', [HomeController::class,'test'])->name('test');
Form::macro('myField', function() { return '<input type="awesome">'; });
Form::component('bsText', 'components.form.text', ['name', 'value', 'attributes']);
Route::post('test', [
'uses' => 'HomeController@test'
]);
app\Http\Controllers\HomeController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class HomeController extends Controller
{
public function test(){
return "Testttt";
}
}
Result: https://oec.wayarmy.net
<body class="antialiased">
<form method="POST" action="https://oec.wayarmy.net/test" accept-charset="UTF-8" enctype="multipart/form-data"><input name="_token" type="hidden" value="paChd08unwwzh86hE93XYouf0YcJ9WDuLksIQp0F">
<label for="email">E-Mail Address</label>
<input class="form-control" name="username" type="text" value="aaaa1">
<input placeholder="Password" class="awesome" name="password" type="password" value="">
<input checked="checked" name="name" type="checkbox" value="value">
<input name="name" type="radio" value="value">
<input name="name" type="number" value="123">
<input name="name" type="date" value="2022-10-08">
<input name="image" type="file">
<select name="size">
<option value="L">Large</option>
<option value="S">Small</option>
</select>
<select name="animal">
<optgroup label="Cats">
<option value="leopard">Leopard</option>
</optgroup>
<optgroup label="Dogs">
<option value="spaniel">Spaniel</option>
</optgroup>
</select>
<select name="number">
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
</select>
<select name="month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<input type="awesome">
<div class="form-group">
<label for="v1" class="control-label">V1</label>
<input class="form-control" attributes="v3" name="v1" type="text" value="v1" id="v1">
</div>
<a href="https://oec.wayarmy.net/foo/bar">Title</a>
<a href="https://oec.wayarmy.net/foo/bar.zip" abc="abc1">Zip</a>
<a href="https://oec.wayarmy.net/test?abc=abc2&bcd=abc3">link_to_route</a>
<a href="https://oec.wayarmy.net/test" abc="abc4" bcd="abc5">link_to_action</a>
<input type="submit" value="Click Me!">
</form>
<form method="POST" action="https://oec.wayarmy.net/test?1" accept-charset="UTF-8"><input name="_token" type="hidden" value="paChd08unwwzh86hE93XYouf0YcJ9WDuLksIQp0F">
<label for="first_name" class="address">First Name:</label>
<input name="first_name" type="text" id="first_name">
<label for="last_name" class="address">Last Name:</label>
<input name="last_name" type="text" id="last_name">
<label for="email" class="address">E-Mail Address</label>
<input name="email" type="text" id="email">
<label for="address[street1]" class="address">Address (Street 1)</label>
<input name="address[street1]" type="text" id="address[street1]">
<label for="address[street2]" class="address">Address (Street 2)</label>
<input name="address[street2]" type="text" id="address[street2]">
<label for="ddress[city]" class="address">City</label>
<input name="address[city]" type="text">
<label for="address[state]" class="address">State</label>
<input name="address[state]" type="text" id="address[state]">
<label for="address[zip]" class="address">Zip Code</label>
<input name="address[zip]" type="text" id="address[zip]">
<input type="submit" value="Send this form!">
</form>
</body>
Previous2 ví dụ để hiểu rõ Dependency Injection, Inversion of Control (ok)NextHướng dẫn tạo một Provider, packagist.org P1 (ok)
Last updated