Kontroliera izmantošana
Route::get('/forma', [
'uses' => 'formaController@showForma',
'as' => 'forma'
]);
Route::post('/apstrade', [
'uses' => 'formaController@postForma',
'as' => 'apstrade'
]);
Kontroliera definēšana
- Fails: app/Http/Controllers/FormaController.php
<?php
namespace App\Http\Controllers;
use \Illuminate\Http\Request;
class FormaController extends Controller
{
public function showForma()
{
}
public function postForma(Request $request)
{
}
}
Ievada validēšana
public function postForma(Request $request)
{
$this->validate($request, [
'vards' => 'required|alpha',
]);
return view('apstrade', ['vards' => $request['vards']]);
}
Ievada validēšana
@if (count($errors) > 0)
<div>
<ul>
@foreach($errors->all() as $error)
{{ $error }}
@endforeach
<ul/>
</div>
@endif
Modeļa migrācijas kods, tabulas izveide
public function up()
{
Schema::create('stories', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
Piemērs: routes
Route::get('jauns', [
'uses' => 'storyController@addStoryForm',
'as' => 'jauns'
]);
Route::post('saglabat', [
'uses' => 'storyController@saveStory',
'as' => 'saglabat'
]);
Route::get('raksti', [
'uses' => 'storyController@allStories',
'as' => 'raksti'
]);
Piemērs: modelis
cd /c/xampp/htdocs/prakt11
php artisan make:model Story -m
Piemērs: modelis
Kāda izskatās tukša izveidotā modeļa klase?
Pievienoti lauki title un content
public function up()
{
Schema::create('stories', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
$table->string('title');
$table->text('content');
});
}
Izveido kontrolieri
- Fails: app/Http/Controllers/StoryController.php
namespace App\Http\Controllers;
use \Illuminate\Http\Request;
use App\Story;
class StoryController extends Controller
{
public function addStoryForm() {}
public function saveStory(Request $request) {}
public function allStories() {}
}
Raksta pievienošanas forma
public function addStoryForm()
{
return view('story_form');
}
Raksta pievienošanas formas templeits
...
<form action="{{ route('saglabat') }}" method="post">
@csrf
Title:
<input type="text" name="title"><br/>
Content:
<textarea name="content" cols="50" rows="20"></textarea><br/>
<input type="submit" value="Send">
</form>
...
Raksta saglabāšana
public function saveStory(Request $request)
{
$this->validate($request, [
'title' => 'required',
'content' => 'required',
]);
$story = new Story();
$story->title = $request['title'];
$story->content = $request['content'];
$story->save();
return redirect()->route('raksti');
}
Datu nolasīšana
public function allStories()
{
$stories = Story::all();
return view('all_stories', ['stories' => $stories]);
}
Parādīšana skatā
@foreach ($stories as $story)
<div class="story">
<div class="title"><h2>{{ $story->title }}</h2></div>
<div class="content">
{{ $story->content }}
</div>
</div>
<br/>
<br/>
@endforeach
Lapošana
$stories = Story::paginate(2);
{{ $stories->links() }}