Skip to content
Snippets Groups Projects
Commit 17d87f05 authored by AMOCA OKKES's avatar AMOCA OKKES
Browse files

tp noté

parent d924e1d2
Branches
No related merge requests found
Showing
with 300 additions and 0 deletions
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use App\Models\Bird;
class BirdController extends Controller
{
/**
* Show new bird page
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function formBird( Request $request )
{
return view('formBird')
->with('user',$request->session()->get('user'))
->with('message',$request->session()->get('message'));
}
/**
* Show bird listpage
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function birdList( Request $request )
{
$birds = Bird::all();
return view('birdList')
->with('birds',$birds)
->with('user',$request->session()->get('user'))
->with('message',$request->session()->get('message'));
}
/**
* Show details birds
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function detailsBird( Request $request , int $bird_id)
{
return view('formdetails')
->with('birds', Bird::find($bird_id))
->with('user',$request->session()->get('user'))
->with('message',$request->session()->get('message'));
}
/**
* delete bird
*
* @param \Illuminate\Http\Request $request
* @param int $article_id
* @return \Illuminate\Http\Response
*/
public function deletebird( Request $request, int $bird_id )
{
try
{
Bird::where('ornithologue', $bird_id)->delete();
}
catch (\Illuminate\Database\QueryException $e)
{
return redirect()->route('birdList')
->with('message','Sorry, an error occur durng articledeleteing. Please try again.');
}
return redirect()->route('birdList')->with('message','Bird deleted!');
}
/**
* Add a bird
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function addBird( Request $request )
{
if ( !$request->filled(['place','species','scientific', 'description']) )
return redirect()->route('formBird')->with('message','Some POST data are missing.');
$bird = new Bird;
$bird->ornithologue = $request->login;
$bird->date_observ=now();
$bird->lieu_obser=$request->place;
$bird->espece=$request->species;
$bird->nom_science=$request->scientific;
$bird->description=$request->description;
try
{
$bird->save();
}
catch (\Illuminate\Database\QueryException $e)
{
return redirect()->route('formBird')
->with('message','Sorry, (jai pas eu le temps de changé la clé primaire dsl mais jai compris pk ya ce pblm');
}
return redirect()->route('account')->with('message','Bird created!');
}
}
......@@ -69,6 +69,19 @@ class UserController extends Controller
->with('message',$request->session()->get('message'));
}
/**
* Show myprofile page
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function myprofile( Request $request )
{
return view('myprofile')
->with('user',$request->session()->get('user'))
->with('message',$request->session()->get('message'));
}
/**
* Authentication
*
......@@ -114,6 +127,8 @@ class UserController extends Controller
$user = new UserEloquent;
$user->login = $request->login;
$user->password = Hash::make($request->password);
$user->nom=$request->nom;
$user->prenom=$request->prenom;
try
{
......
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Bird extends Model
{
use HasFactory;
protected $table = 'birds';
protected $primaryKey = 'ornithologue';
public $timestamps = false;
}
......@@ -19,6 +19,8 @@ class CreateUserEloquentsTable extends Migration
$table->bigIncrements('user_id');
$table->string('login')->unique();
$table->string('password',256);
$table->string('nom');
$table->string('prenom');
});
}
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBirdsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('birds', function (Blueprint $table) {
//$table->id();
$table->id('ornithologue');
$table->foreign('ornithologue')->references('user_id')->on('UserEloquent')->onDelete('cascade');
$table->date('date_observ')->nullable();
$table->string('lieu_obser');
$table->string('espece');
$table->string('nom_science');
$table->string('description');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('birds');
}
}
No preview for this file type
......@@ -9,6 +9,9 @@
Welcome on your account.
</p>
<ul>
<li><a href="{{ route('myprofile') }}">My profile.</a></li>
<li><a href="{{ route('formBird') }}">New Bird.</a></li>
<li><a href="{{ route('birdList') }}">Show Bird.</a></li>
<li><a href="{{ route('formpassword') }}">Change password.</a></li>
<li><a href="{{ route('deleteuser') }}">Delete my account.</a></li>
</ul>
......
@extends('layouts.app')
@section('title','Bird List')
@section('main')
@parent
@foreach ($birds as $bird)
<article>
<h2>{{$loop->index + 1}} (ornithologue :{{ $bird->ornithologue }}) - {{ $bird->nom_science }}</a></h2>
<section>
<ul>
Place : {{ $bird->lieu_obser }}.<br>
Date : {{ $bird->date_observ }}.
</ul>
</section>
<section>
<form action="{{ route('detailsBird',['bird_id' => $bird->ornithologue ]) }}" method="POST">
@csrf
<button type="submit">Details</button>
</form>
<form action="{{ route('deletebird',['bird_id' => $bird->ornithologue ]) }}" method="POST">
@csrf
<button type="submit">Delete</button>
</form>
</section>
</article>
@endforeach
<section>
<ul>
Go back to <a href="{{ route('account') }}">Home</a>.
</ul>
</section>
@endsection
@extends('layouts.app')
@section('title','New Bird')
@section('main')
@parent
<form action="{{ route('addBird') }}" method="post">
@csrf
<label for="place">Place</label> <input type="text" id="place" name="place" required>
<label for="species">Species</label><input type="text" id="species" name="species" required>
<label for="scientific">Scientific</label><input type="text" id="scientific" name="scientific" required>
<label for="description">description</label><input type="text" id="description" name="description" required>
<input type="submit" value="Add">
</form>
<p>
Go back to <a href="{{ route('account') }}">Home</a>.
</p>
@endsection
\ No newline at end of file
@extends('layouts.app')
@section('title','Bird Details')
@section('main')
@parent
<article>
<section>
<h1>{{ $birds->espece }}</h1>
</section>
<section>
Observations :
<ul>
Place : {{ $birds->lieu_obser }}.<br>
Date : {{ $birds->date_observ }}.
</ul>
</section>
<section>
Bird :
<ul>
Scientific name : {{ $birds->nom_science }}.<br>
Description : {{ $birds->description }}.
</ul>
</section>
</article>
<section>
<ul>
Go back to <a href="{{ route('birdList') }}">my birds</a>.
</ul>
</section>
@endsection
\ No newline at end of file
@extends('layouts.app')
@section('title','My profile')
@section('main')
@parent
<p>
Hello {{ $user->login }} !<br><br>
Your informations :.<br>
</p>
<ul>
<li>Nom : {{ $user->nom }}</li>
<li>Prénom : {{ $user->prenom }}</li>
</ul>
<p>Go back to <a href="{{ route('account') }}">home.</a></p>
@endsection
......@@ -9,6 +9,9 @@
<label for="login">Login</label> <input type="text" id="login" name="login" required autofocus>
<label for="password">Password</label> <input type="password" id="password" name="password" required>
<label for="confirm">Confirm password</label><input type="password" id="confirm" name="confirm" required>
<label for="nom">nom</label> <input type="text" id="nom" name="nom" required>
<label for="prenom">prenom</label><input type="text" id="prenom" name="prenom" required>
<input type="submit" value="Signup">
</form>
<p>
......
......@@ -2,6 +2,7 @@
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
use App\Http\Controllers\BirdController;
/*
|--------------------------------------------------------------------------
......@@ -33,5 +34,14 @@ Route::prefix('admin')->middleware('auth.myuser')->group( function() {
Route::get('account', [UserController::class,'account'])->name('account');
Route::get('signout', [UserController::class,'signout'])->name('signout');
Route::get('myprofile', [UserController::class,'myprofile'])->name('myprofile');
Route::get('formBird', [BirdController::class,'formBird'])->name('formBird');
Route::post('addBird', [BirdController::class,'addBird'])->name('addBird');
Route::get('birdList', [BirdController::class,'birdList'])->name('birdList');
Route::post('detailsBird/{bird_id}', [BirdController::class,'detailsBird'])->name('detailsBird');
Route::post('deletebird/{bird_id}', [BirdController::class,'deletebird'])->name('deletebird');
});
// ------------------------------------------------------------------------
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment