Problem with laravel model 5.2

1

I'm having a problem with my model, I do not really know what's going on, I'm creating a packaging CRUD where I add everything dynamically with the laravel by the requests in the function signature.

When trying to edit / view / delete my controller returns empty, as if I was accessing an empty model. No mistakes are coming back empty. To test I listed all the packages already registered and worked perfectly.

My files are structured as follows:

CONTROLLER PACKAGING

public function index(){
    $embalagens =  Embalagem::all();

    if(Request::wantsJson()){
        return $embalagens;
    }else{
        return view('Embalagem.listEmbalagem', compact('embalagens'));
    }
}

public function create(){
    $embalagem = new Embalagem();
    return view('Embalagem.cadEmbalagem', compact('embalagem'));
}

public function store(EmbalagemRequest $resquest){
    $embalagem = Embalagem::create($resquest->all());
    $embalagens = Embalagem::all();

    if(Request::wantsJson()){
        return $embalagem;
    }else{
        return view('Embalagem.listEmbalagem', compact('embalagens'));
    }
}

public function show(Embalagem $embalagem){
    if(Request::wantsJson()){
        return $embalagem;
    }else{
        return view('Embalagem.showEmbalagem', compact('embalagem'));
    }
}

public function edit(Embalagem $embalagem){
    return view('Embalagem.editEmbalagem', compact('embalagem'));
}

public function update(EmbalagemRequest $request, Embalagem $embalagem){
    $embalagem->update($request->all());
    $embalagens = Embalagem::all();

    if(Request::wantsJson()){
        return $embalagem;
    }else{
        return view('Embalagem.listEmbalagem', compact('embalagens'));
    }
}

public function destroy(Embalagem $embalagem){
    $deleted = $embalagem->delete();
    $embalagens = Embalagem::all();

    if(Request::wantsJson()){
        return (string) $deleted;
    }else{
        return view('Embalagem.listEmbalagem', compact('embalagens'));
    }
}

MODEL PACKING

namespace App;

  use Illuminate\Database\Eloquent\Model;
  use Illuminate\Database\Eloquent\SoftDeletes;


class Embalagem extends Model
{
    use SoftDeletes;

    protected $fillable = ['NmEmbalagem', 'DscEmbalagem', 'UnitEmbalagem'];
    protected $primaryKey = 'CdEmbalagem';
    protected $dates = ['deleted_at'];

}

REQUEST PACKING

public function authorize()
{
    return true;
}

public function rules()
{
    return [
        'NmEmbalagem' => 'required|min:1',
        'DscEmbalagem' => 'required|min:5'
    ];
}

MY ROUTES

Route::singularResourceParameters();

Route::group(['middleware' => ['web']], function (){
   Route::resource('clientes', 'ClienteController');
   Route::resource('categorias', 'CategoriaController');
   Route::resource('embalagens', 'EmbalagemController');
});

|        | POST      | embalagens                  | embalagens.store   | App\Http\Controllers\EmbalagemController@store          | web,web    |
|        | GET|HEAD  | embalagens                  | embalagens.index   | App\Http\Controllers\EmbalagemController@index          | web,web    |
|        | GET|HEAD  | embalagens/create           | embalagens.create  | App\Http\Controllers\EmbalagemController@create         | web,web    |
|        | PUT|PATCH | embalagens/{embalagen}      | embalagens.update  | App\Http\Controllers\EmbalagemController@update         | web,web    |
|        | DELETE    | embalagens/{embalagen}      | embalagens.destroy | App\Http\Controllers\EmbalagemController@destroy        | web,web    |
|        | GET|HEAD  | embalagens/{embalagen}      | embalagens.show    | App\Http\Controllers\EmbalagemController@show           | web,web    |
|        | GET|HEAD  | embalagens/{embalagen}/edit | embalagens.edit    | App\Http\Controllers\EmbalagemController@edit           | web,web    |

MY MIGRATION

public function up()
{
    Schema::create('embalagems', function (Blueprint $table) {
        $table->increments('CdEmbalagem');
        $table->string('NmEmbalagem');
        $table->string('DscEmbalagem');
        $table->string('UnitEmbalagem');
        $table->timestamps();
        $table->softDeletes();
    });
}
  

What can be happening? Is something missing that I can not see?

    
asked by anonymous 09.09.2016 / 01:28

1 answer

1

As you are using Controller of type resource , this would be the methods and parameters :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class GeralController extends Controller
{        
    public function index()
    {
    }            

    public function create()
    {
    }

    public function store(Request $request)
    {
    }

    public function show($id)
    {
    }

    public function edit($id)
    {
    }

    public function update(Request $request, $id)
    {
    }

    public function destroy($id)
    {
    }
}

Now you can implement that way and use routes .

Routes table of a Controller of type resource :

|Verb         |          URI           |   Action     |  Route Name    |
|======================================================================|
|GET          |/geral                  |   index      | geral.index    |
|GET          |/geral/create           |   create     | geral.create   |
|POST         |/geral                  |   store      | geral.store    |
|GET          |/geral/{geral}          |   show       | geral.show     |
|GET          |/geral/{geral}/edit     |   edit       | geral.edit     |
|PUT/PATCH    |/geral/{geral}          |   update     | geral.update   | 
|DELETE       |/geral/{geral}          |   destroy    | geral.destroy  |

Reference:

Example method as should be:

Edit:

public function edit($id, Embalagem $emb)
{
    $embalagem = $emb->find($id); // ou Embalagem::find($id);
    return view('Embalagem.editEmbalagem', compact('embalagem'));
}

Show:

public function show($id, Embalagem $emb)
{
    $embalagem = $emb->find($id); // ou Embalagem::find($id);
    if(Request::wantsJson())
    {
        return $embalagem;
    }
    else
    {
        return view('Embalagem.showEmbalagem', compact('embalagem'));
    }
}

Destroy:

public function destroy($id, Embalagem $emb)
{
    if(Request::wantsJson())
    {
        $model = $emb->find($id);
        return (string) $model->delete();
    }
    else
    {
        $embalagens = $emb->all();
        return view('Embalagem.listEmbalagem', compact('embalagens'));
    }
}

Update:

public function update(EmbalagemRequest $request, Embalagem $emb, $id)
{
    $embalagem = $emb->find($id);
    $embalagem->fill($request->all());
    $embalagem->save();

    if(Request::wantsJson())
    {
        return $embalagem;
    }
    else
    {
        $embalagens = Embalagem::all();
        return view('Embalagem.listEmbalagem', compact('embalagens'));
    }   
}
    
09.09.2016 / 01:46