منتديات رحيل لكل العرب

منتديات رحيل لكل العرب (https://r7il.com/vb/)
-   قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress (https://r7il.com/vb/f20/)
-   -   laravel5 todo إنشاء تطبيق قائمة مهام بسيط باستخدام Laravel 5 - الجزء الرابع (https://r7il.com/vb/t757/)

الفارس 23-02-2019 05:02 PM

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$ بتوجيهك إلى الصفحة الحالية مع الأخطاء التي سوف تظهر على الصفحة.

هديل الحرف 27-07-2019 11:04 AM

بارك الله فيك
إستمر ولك التوفيق بـإذن الله
تقديري وإحترامي


الساعة الآن 08:46 AM

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2010, Crawlability, Inc. TranZ By Almuhajir

Security team