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

  • Kļudu izvadīšana (skatā)
@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() }}