Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Request não existe

Ola boa tarde!

Fica dando esse erro:

Illuminate\Contracts\Container\BindingResolutionException

Target class [App\Http\Controllers\Request] does not exist.

ClienteController.php:


<?php

namespace App\Http\Controllers;


class ClienteController extends Controller
{
    public function cadastro()
    {
        $cadastros = [
            'Grey\'s Anatomy',
            'Lost',
            'Agents of SHIELD'
        ];

        return view("cadastro.index", compact('cadastros'));
    }

    public function create()
    {
        return view('cadastro.create');
    }

    public function store(Request $request)
    {
        $nome = $request->nome;
        $novo = new Orcamento();
        $novo->nome = $nome;
       var_dump($novo->save());


    }
}

Orcamento.php:

<?php

namespace App;

use illuminate\Database\Eloquent\Model;

class Orcamento extends Model
{
    protected $table = 'orcamentos';
    public $timestamps = false;
}

web.php:

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ClienteController;


Route::get('cliente',[ClienteController::class, 'cadastro']);

Route::get('cliente/criar',[ClienteController::class, 'create']);

Route::post('cliente/criar/',[ClienteController::class, 'store']);

2021_01_06_132127_criar_tabela_orcamentos.php:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CriarTabelaOrcamentos extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('orcamentos', function (Blueprint $table){
            $table->string('nome');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('orcamentos');
    }
}
5 respostas

Olá Leonardo, beleza?

Verifiquei o seu código e acredito que esteja faltando importar o Request no seu arquivo "ClienteController.php"

use Illuminate\Http\Request;

E uma dica para vc, no arquivo de web.php é possível referenciar as rotas dessa forma:

Route::TipoRequest('Url', 'ClasseDoControllerChamado@MetodoChamado');

Por Exemplo:

Route::get('/cliente', 'ClienteController@cadastro');

Route::get('/series', 'SeriesController@index');

Olá Rodrigo agora ta rodando

Rodrigo eu to tentando adicionar uma nova coluna no na minha tabela orcamento mas não to conseguindo

<?php

use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema;

class CriarTabelaOrcamentos extends Migration { /**

 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('orcamentos', function (Blueprint $table){

        $table->string('nome');
        $table->string('id'); // tentando adicionar essa aqui
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::drop('orcamentos');
}

}

não sei se estou fazendo do jeito certo

Leonardo, toda alteração de banco de dados precisa criar uma nova migration.

você vai precisar usar o comando:

php artisan make:migration AdicionandoCampoIdTableOrcamento

Ai no arquivo que for criado desse migration na função "up" vc vai adicionar

public function up()
{
    Schema::table('orcamentos', function (Blueprint $table) {
        $table->string('id');
    });
}

e na função de down:

    public function down()
    {
        Schema::table('orcamentos', function (Blueprint $table) {
            $table->dropColumn('id');
        });
    }

Feito isso realize o pgp artisan migrate

php artisan migrate 

Você precisa fazer dessas forma, pois ele precisa ter um registro das migrations, como vc tentou alterar provavelmente uma que já havia sido executava, ele ignorava as alterações.

Se vc quiser, vc pode excluir o seu banco de dados, alterar as migrations para a forma correta, e usar o php artisan migrate para criar tudo de novo

Segue um exemplo pra vc..

Eu tinha essa Migration simples desse curso mesmo:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CriarTabelaSeries extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('series', function(Blueprint $table){
            $table->increments('id');
            $table->string('nome');
            // $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('series');
    }
}

Porém no modulo 3 precisei adicionar um novo campo no banco de dados, então criei uma nova migration:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AdicionaCampoAssistido extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('episodios', function (Blueprint $table) {
            $table->boolean('assistido')->default(false);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('episodios', function (Blueprint $table) {
            $table->dropColumn('assistido');
        });
    }
}

E depois mais uma vez precisei fazer isso para outra coluna, rs

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AdicionaCampoCapaSerie extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('series', function (Blueprint $table) {
            $table->string('capa')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('series', function (Blueprint $table) {
            $table->dropColumn('capa');
        });
    }
}

Note que são 3 migrations para a mesma tabela "series", mas precisei fazer isso "Mantendo um histórico de migrations".

solução!

Olá Rodrigo eu consegui adiciona, primeiro eu derrubei o banco dando um 'php artisan migrate:rollback', deposi adicionei os dados q eu queria no banco e dps rodei o banco de novo com o 'php artisan migrate'.

ai tudo funcionou muito bem

Obrigado pela atenção Rodrigo e tenha uma ótima semana vlw.