У меня есть 2 таблицы tache
и tarificationtache
с отношением one to many
. На столе tarification
у меня есть tache_id
, tarif
и technicien_id
. На столе tache
у меня есть id
, libelle_tache
и tarif
Я бы хотел на странице show.blade.php
показать среднее значение по всем tarif
с tarificationtache tarif
, где tache_id = id
с table tache
.
Tachecontroller
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Tache;
use App\Metier;
use App\Technicien;
class TacheController extends Controller
{
protected function validator(array $data)
{
return Validator::make($data, [
'Tarif' => 'required|floatval(6.3)',
]);
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$tache=tache::with(['metier'])->get();
$search = $request->get('search');
$field = $request->get('field') != '' ? $request->get('field') :
'libelle_tache';
$sort = $request->get('sort') != '' ? $request->get('sort') : 'asc';
$tache = new tache();
if ($request)
$tache = $tache->where('libelle_tache', 'like', '%' . $search . '%')
->orderBy($field, $sort)
->paginate(5)
->withPath('?search=' . $search . '&libelle_tache=' . $tache . '&field='
. $field . '&sort=' .
$sort);
return view('tache.index',['tache'=>$tache]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//$metiers = Costcenter::lists('libelle_metier', 'id');
$metiers = Metier::orderBy('libelle_metier', 'asc')->get();
return view('tache.create')->with('metiers', $metiers);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$tache = new Tache();
$tache ->libelle_tache =$request->input('libelle_tache');
$tache ->Tarif =$request->input('Tarif');
$tache ->metier_id = $request->input('metier_id');
$tache->save();
return redirect('tache');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$tache = tache::findOrFail($id);
$metier = $tache->metier;
return view('tache.show' , compact('tache'))->with('metier',$metier);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$tache=Tache::find($id);
$metiers = Metier::orderBy('libelle_metier', 'asc')->get();
return view('tache.edit',['libelle_tache'=>$tache],['Tarif'=>$tache],
['metier_id'=>$tache])-
>with('metiers', $metiers);
}
public function update(Request $request, $id)
{
// do some request validation
$tache=Tache::find($id);
$tache->update($request->all());
return redirect('tache');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$tache =Tache::find($id);
$tache->delete();
return redirect('tache');
}
public function getTachesByMetier($metier_id)
{
$t = Metier::find($metier_id);
return response()->json(['taches' => $t->taches]);
}
}
show.blade.php
@extends('Layouts/app')
@extends('Layouts.master')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10">
<h1 align="center">Detail Tache</h1>
<div class="form-group">
<label for="libelle_Tache">Libelle Tache</label>
<label id="libelle_Tache" type="text" class="form-control"
name="tache[libelle_Tache]" >{{$tache->libelle_tache}}</label>
</div>
<div class="form-group">
<label for="Tarif">Tarif moyenne </label>
<label id="Tarif" type="text" class="form-control"
name="tache[Tarif]" >{{$tache->Tarif}}</label>
</div>
<div class="form-group">
<label for="libelle_metier">Libelle Metier</label>
<label id="prenom" type="text" class="form-control"
name="metier[libelle_metier]" >{{$tache->metier->libelle_metier}}</label>
</div>
<div class="form-group" align="right">
<form action="{{url ('tache/'.$tache->id)}}"
method="post">
{{csrf_field()}}
{{method_field('DELETE')}}
<a href="{{url('/tache')}}" class="btn btn-
default" class="btn btn-primary">Retour</a>
<a href="{{url('tache/'.$tache->id.'/edit')}}"
class="btn btn-default">Editer</a>
<button type="submit" class="btn btn-
danger">Supprimer</button>
</form>
</div
</div>
@endsection
в интерфейсе тарификации каждого специалиста для определения цены его задачи
и это show.blade.php. Мне нравится отображать среднее значение тарифа для каждой задачи
tache.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class tache extends Model
{
use SoftDeletes;
protected $guarded = [];
protected $dates = ['deleted_at'];
public function metier()
{
return $this->belongsTo(Metier::class);
}
public function tarificationtache()
{
return $this->hasMany(Tarificationtache::class);
}
}