عرض مشاركة واحدة
قديم 23-02-2019, 05:02 PM   #1
تاريخ التسجيل: Feb 2019
المشاركات: 1,010
التقييم: 10
تاريخ التسجيل: Feb 2019
المشاركات: 1,010
التقييم: 10
افتراضي laravel5 todo إنشاء تطبيق قائمة مهام بسيط باستخدام Laravel 5 - الجزء الرابع

laravel5 todo إنشاء تطبيق قائمة مهام بسيط باستخدام Laravel 5 - الجزء الرابع


استمارة التحقق من جانب الخادم
على الرغم من أن استمارات الإنشاء والتعديل تعمل إلا أننا لم نقم بالتحقق من ما يتم إدخاله، وهذا ما سنقوم بعمله اليوم.
هنالك طرق متعددة للتعامل مع استمارة التحقق، بعضها أفضل من الآخر، ولهذا التطبيق الصغير نقترح أن نستخدم وظيفة المتحكِّمات ()validate مع كائن Illuminate\Http\Request
// /app/Http/Controllers/ProjectsController.php

use Illuminate\Http\Request;

class ProjectsController extends Controller {

protected $rules = [ 'name' => ['required', 'min:3'], 'slug' => ['required'], ];
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request * @return Response
*/


public function store(Request $request)
{
$this->validate($request, $this->rules);
$input = Input::all();
Project::create( $input );

return Redirect::route('projects.index')->with('message', 'Project created');
}

/**
* Update the specified resource in storage.
*
* @param \App\Project $project
* @param \Illuminate\Http\Request $request * @return Response
*/
public function update(Project $project, Request $request)
{
$this->validate($request, $this->rules);
$input = array_except(Input::all(), '_method');
$project->update($input);

return Redirect::route('projects.show', $project->slug)->with('message', 'Project updated.');
}
وأما في ملف app/Http/Controllers/TasksController.php/:

// /app/Http/Controllers/TasksController.php
use Illuminate\Http\Request;

class TasksController extends Controller {

protected $rules = ['name' => ['required', 'min:3'],
'slug' => ['required'],
'description' => ['required'],
];

/**
* Store a newly created resource in storage.
*
* @param \App\Project $project
* @param \Illuminate\Http\Request $request * @return Response
*/
public function store(Project $project, Request $request)
{
$this->validate($request, $this->rules);
$input = Input::all();
$input['project_id'] = $project->id;
Task::create( $input );

return Redirect::route('projects.show', $project->slug)->with('Task created.');
}

/**
* Update the specified resource in storage.
*
* @param \App\Project $project
* @param \App\Task $task
* @param \Illuminate\Http\Request $request * @return Response
*/
public function update(Project $project, Task $task, Request $request)
{
$this->validate($request, $this->rules);
$input = array_except(Input::all(), '_method');
$task->update($input);

return Redirect::route('projects.tasks.show',
[$project->slug, $task->slug])->with('message', 'Task updated.');
}
سوف نحتاج أيضا إلى مكان لعرض أية أخطاء، لذلك قُم بفتح resources/views/app.blade.php/ وأضف السطور التالية أسفل ('yield('content@:

<div class="content">
@if (Session::has('message'))
<div class="flash alert-info">
<p>{{ Session::get('message') }}</p>
</div>
@endif

@if ($errors->any())
<div class='flash alert-danger'>
@foreach ( $errors->all() as $error )
<p>{{ $error }}</p>
@endforeach
</div>
@endif

@yield('content')
</div>
من المفترض أن يعمل كل شيء الآن، وإذا كان عكس ذلك، فسوف تقوم ()this->validate$ بتوجيهك إلى الصفحة الحالية مع الأخطاء التي سوف تظهر على الصفحة.

الفارس غير متواجد حالياً   اقتباس