Sistema de curriculos ajuda plz

6 respostas
laravel
R

Estou fazendo um sistema de curriculos com o conhecimento que estou ganhando nas aulas de Laravel, sou iniciante.

Então tem uma tabela de users que pega o cadastro de usuarios que é id, nome, email e senha que gera o login. eu criei um formulario para cadastro dos curriculos nele não repeti nenhum campo só campos novos e criei a tabela currículo, gostaria de saber como vcs fariam pra que se caso esse formulario deo currículo ja tenha preenchido pelo usuario logado ele iria para uma página para editar ao invés de cadastrar.

6 Respostas

darlan_machado

Primeiramente, “ajuda”, “por favor”, “plz” não ajuda em nada, é desnecessário.
Se você identifica o usuário logado e há uma relação que ligue o usuário logado a um currículo, basta fazer um select count(*) na tabela de currículo para validar se há algum registro daquele usuário ou não (0 não tem, 1 existe).

R

Opa mano só uma forma de falar com educação, mas é isso.

Então agradeço pela ajuda primeiramente, então tenho que criar uma coluna nas duas tabelas que crie uma relação? e depois faço um count nela? Pq assim nesse formulário o usuário só consegue entrar se tiver logado ai eu pensei que se eu fizesse na tabela currículos uma coluna ok que quando ele se cadastra preenchesse com 1, antes de entrar nessa parte do sistema eu verificasse se essa coluna tá preenchida se caso sim eu enviaria pra outro lugar, mas não to conseguindo fazer e tb não manjo ainda de criar uma relação.

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

use Illuminate\Support\Facades\Validator;

use Illuminate\Support\Facades\Hash;

use Illuminate\Support\Facades\Auth;

use App\Curriculo;

class CurriculoController extends Controller

{

    public function __construct() {

        $this->middleware('auth');

    }

    /**

     * Display a listing of the resource.

     *

     * @return \Illuminate\Http\Response

     */

    public function index()

    {

        

        $curriculo = Curriculo::get();

        return view('admin.curriculum.index', [

            'curriculo' => $curriculo

        ]);

    }

    /**

     * Show the form for creating a new resource.

     *

     * @return \Illuminate\Http\Response

     */

    public function create()

    {

        //

    }

    /**

     * Store a newly created resource in storage.

     *

     * @param  \Illuminate\Http\Request  $request

     * @return \Illuminate\Http\Response

     */

    public function store(Request $request)

    {

                       

        $data = $request->only([

            'cpf',

            'telefone',

            'endereco',

            'cep',

            'nascimento',

            'civil',

            'sexo',

            'formacao',

            'ultexperiencia',

            'ultdescricaoexp',

            'penuexperiencia',

            'penudescricaoexp'

        ]);

        $validator = Validator::make($data, [

            'cpf' => ['required', 'cpf', 'unique:curriculos'],            

            'telefone' => ['required', 'string', 'max:11', 'regex:[^\d{2}\d{5}\d{4}$]'],            

            'endereco' => ['required', 'string', 'max:100'],

            'cep' => ['required', 'string', 'max:8', 'regex:[d{5}-\d{3}]'],

            'nascimento' => ['required', 'string', 'date', 'max:100'],

            'civil' => ['required', 'string', 'max:100'],

            'sexo' => ['required', 'string', 'max:100'],

            'formacao' => ['required', 'string', 'max:100'],

            'ultexperiencia' => ['required', 'string', 'max:100'],

            'ultdescricaoexp' => ['required', 'string', 'max:100'],

            'penuexperiencia' => ['required', 'string', 'max:100'],

            'penudescricaoexp' => ['required', 'string', 'max:100']          

                      

        ]);

        if($validator->fails()) {

            return redirect()->route('curriculo.index')

            ->withErrors($validator)

            ->withInput();

        }

        $user = new Curriculo;

        $user->ok = 1;

        $user->telefone = $data['telefone'];

        $user->endereco = $data['endereco'];

        $user->nascimento = $data['nascimento'];

        $user->civil = $data['civil'];

        $user->sexo = $data['sexo'];

        $user->formacao = $data['formacao'];

        $user->ultexperiencia = $data['ultexperiencia'];

        $user->ultdescricaoexp = $data['ultdescricaoexp'];

        $user->penuexperiencia = $data['penuexperiencia'];

        $user->penudescricaoexp = $data['penudescricaoexp'];

        $user->cpf = $data['cpf'];

        $user->save();

        

        return redirect()->route('curriculo.index')

        ->with('warning', 'Currículo Registrado com Sucesso!');

    }

    /**

     * Display the specified resource.

     *

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function show($id)

    {

        //

    }

    /**

     * Show the form for editing the specified resource.

     *

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function edit($id)

    {

        $user = Curriculo::find($id);

        if($user) {

        return view('admin.users.edit', [

            'user' => $user

            ]);

        }

        return redirect()->route('users.index');

    }

    /**

     * Update the specified resource in storage.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function update(Request $request, $id)

    {

        //

    }

    /**

     * Remove the specified resource from storage.

     *

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function destroy($id)

    {

        //

    }

}
darlan_machado

Como você faz para dizer que um currículo pertence a um usuario? Se você não tem relacionamento entre a tabela usuario e curriculo, é impossível garantir que haja relação entre um registro de uma tabela e outro da outra.

Aí é você que precisa buscar, não temos como te ensinar. Há vários cursos de bancos de dados por aí, gratuitos e pagos.

R

Aí é você que precisa buscar, não temos como te ensinar. Há vários cursos de bancos de dados por aí, gratuitos e pagos.

Certo.

Só a última coisa, quando a pessoa enviar o curriculo eu tenho que preencher na tabela user uma coluna tb que vai ter nas duas tabelas com o mesmo valor ok? ai o resto me viro aqui, mas é isso?

darlan_machado

Cara, veja bem. Estamos falando de conceitos de programação estruturada, que é o que vale no banco de dados.
Quando você tem uma tabela, ela representa, de forma atômica, os dados referentes a um único elemento, como um usuário. O currículo é outra unidade atômica, que pode ou não estar relacionada a um usuário.
Assim sendo, você precisa garantir que um está associado a outro.
É aí que entram os conceitos de chaves primária e estrangeira, responsáveis pela associação entre uma ou mais tabelas.

Neste caso, ao cadastrar um currículo, ele deve, obrigatoriamente, incluir uma referência (a tal chave estrangeira) a um identificador único que se refira ao usuário ao qual ele está associado (a tal chave primária).
Entendeu?

R

Entendi, foi de grande valia, vou agora tentar colocar em prática aqui, estou fazendo um curso, mas ainda não tenho essa prática, mas vou pesquisar referente ao que me disse já me deu uma luz obrigado Deus abençoe ae mano!

Criado 10 de janeiro de 2020
Ultima resposta 10 de jan. de 2020
Respostas 6
Participantes 2