Слишком мало аргументов для функции App \ Http \ Controllers \ Auth \ AdaugaJobController :: create (), 0 передано и ожидается ровно 1 - PullRequest
0 голосов
/ 15 мая 2019

Итак, я хочу вставить данные в одну таблицу, и я получаю эту ошибку Я действительно не знаю t know why. i новичка в Laravel, пожалуйста, помогите: D

это мой маршрут

Route::get('/adaugajob', 'Auth\AdaugaJobController@create')->name('adaugajob');

А это мой контроллер

protected function validator(array $data)
    {

        if ($data) {
            return Validator::make($data, [
                'titlu' => ['required', 'string', 'max:255'],
                'descriere' => ['required', 'string', 'max:255'],
                'salariu_estimativ' => ['required', 'string', 'max:255'],
                'oras' => ['required', 'regex:^[0-9\-\+]{9,15}$^'],
            ]);

        }
    }

    protected function create(array $data)
    {
        if ($data) {
            Joburi::create([
                'titlu' => $data['titlu'],
                'descriere' => $data['descriere'],
                'salariu_estimativ' => $data['salariu_estimativ'],
                'oras' => $data['oras'],
            ]);
        }
    }

Ответы [ 3 ]

1 голос
/ 15 мая 2019

Метод Create ожидает массив.но laravel может отправлять только параметр пути (если они существуют) или эквивалентные привязки модели ..... и всегда объект Request, если запрашивается функцией.

Измените параметр array $data на

protected function create( \Illuminate\Http\Request $request)
{
    $data = $request->all();
    if ($data) {
        Joburi::create([
            'titlu' => $data['titlu'],
            'descriere' => $data['descriere'],
            'salariu_estimativ' => $data['salariu_estimativ'],
            'oras' => $data['oras'],
        ]);
    }
}

Сохранить версию:

protected function create( \Illuminate\Http\Request $request)
{
    $data = $request->all();
    if ($data) {
        $joburi = new Joburi();
        $joburi->titlu = $data['titlu'];
        $joburi->descriere = $data['descriere'];
        $joburi->salariu_estimativ = $data['salariu_estimativ'];
        $joburi->oras = $data['oras'];
        $joburi->save();
        return $joburi;
    }
}
0 голосов
/ 20 мая 2019

В вашем блейд-файле:

{{ Form::open(array('route' => 'adaugajob', 'method' => 'POST')) }}

     {{-- Your input fields here --}}

     {{ Form::submit('Save', array('class' => 'btn btn-primary')) }}

{{ Form::close() }}

Создать контроллер в папке контроллера Код в вашем магазине функции

public function store(Request $request){

   $validator = Validator::make($request->all(), [
        'titlu' => 'required|string|max:255',
        'descriere' => 'required|string|max:255',
        'salariu_estimativ' => 'required|string|max:255',
        'oras'=> 'required|regex:^[0-9\-\+]{9,15}$^',
   ]);

   if ($validator->fails()) {
        return redirect()->back()
               ->withErrors($validator)
               ->withInput();
   }

    $post = $request->all();

    Joburi::create($post);

    return redirect('/adaugajob');
}

В файле маршрута (web.php):

Route::post('/adaugajob', 'AdaugaJobController@store')->name('adaugajob');
0 голосов
/ 15 мая 2019

Попробуйте это.И используйте метод store для всех операций вставки.

use Illuminate\Http\Request;

public function store(Request $request)
{
    $validatedData = $request->validate([
        'titlu' => 'required|string|max:255',
        'descriere' => 'required|string|max:255',
        'salariu_estimativ' => 'required|string|max:255',
        'oras'=> 'required|regex:^[0-9\-\+]{9,15}$^',

    ]);

    Joburi::create([
        'titlu' => $data['titlu'],
        'descriere' => $data['descriere'],
        'salariu_estimativ' => $data['salariu_estimativ'],
        'oras' => $data['oras'],
    ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...