I am new fan of Laravel framework. Pleaze tell me how to get input in my POST method and insert it as an attribute 'cli' in my table 'demandes'?
class DemandeController extends Controller
{
protected $demandeRepository;
protected $demandeGestion;
protected $compteRepository;
protected $nbrPerPage = 4;
public function search(SearchRequest $request)
{
$mc = $request->input('mc');
$demandes = $this->demandeRepository->search($mc);
$links = $demandes->render();
$etape = $request->input('etape');
return view('demandes.liste', compact('demandes', 'links'))->with('etape',$etape);
}
public function update(DemandeRequest $request, $id)
{
$user = Auth::user();
$inputs = $this->demandeGestion->get_inputs($request,$user);
$demande= $this->demandeRepository->update($id, $inputs);
return redirect('demande')->withOk("Le dossier " . $demande->objet . " a été modifié.");
//return redirect('demandes.liste')->withOk("Le dossier " . $request->input('objet') . " a été enregistrée.");
}
public function store(DemandeRequest $request)
{
$user = Auth::user();
$inputs = array_merge($request->all(), ['user_id' => $user->id]);
$demande = $this->demandeRepository->store($inputs);
return redirect('demande')->withOk("Le dossier " . $demande->objet . " a été créé.");
}
I have also defined the function store() in my file DemandeRepository like this :
public function store($inputs)
{
$demande = new $this->demande;
$this->save($demande, $inputs);
return $demande;
}
private function save(Demande $demande, Array $inputs)
{
$demande->objet = $inputs['objet'];
$demande->save();
}
My Models :
class Demande extends Model
{
protected $fillable = ['objet','etude','user_id','role','mc','num_tf','val_exp','nom_exp','nom_gar'];
public function user()
{
return $this->belongsTo('App\User');
}
}
class User extends Authenticatable
{
use Notifiable;
use AdldapUserModelTrait;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'username', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function demandes(){
return $this->hasMany('App\Demande');
}
}
My file DemandeRequest:
class DemandeRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'objet' => 'required|max:80',
];
}
}
public function update(DemandeRequest $request, $id)
{
$user = Auth::user();
$inputs = $this->demandeGestion->get_inputs($request,$user);
$demande= $this->demandeRepository->update($id, $inputs);
return redirect('demande')->withOk("Le dossier " . $demande->objet . " a été modifié.");
//return redirect('demandes.liste')->withOk("Le dossier " . $request->input('objet') . " a été enregistrée.");
}
My class DemandeGestion
class DemandeGestion
{
protected $demande;
public function __construct(Demande $demande)
{
$this->demande = $demande;
}
public function get_inputs(DemandeRequest $request, User $user){
if($user->role=='ETUDE'){
$inputs = array_merge($request->all(), ['user_id' => $user->id,'etat' => $user->role]);
}else{
$inputs = array_merge($request->all(), ['user_id' => $user->id]);
}
return $inputs;
}
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire