3
votes

laravel obtient une erreur d'appel à une fonction membre prepare () sur null

Dans laravel, j'ai cette erreur Appel à une fonction membre prepare () sur null, lors de l'insertion d'un enregistrement dans la base de données.

Je code en laravel et ma base de données est MongoDB.



namespace App\Http\Controllers;

use App\Employee;
use Illuminate\Http\Request;

class EmployeeController extends Controller
{

public function create()
{
    return view('addemployee');
}

public function store(Request $request)
{
    $employee = new Employee();
    $employee->firstName = $request->get('firstName');
    $employee->middleName = $request->get('middleName');
    $employee->lastName = $request->get('lastName');
    $employee->gender = $request->get('gender');
    $employee->city = $request->get('city');
    $employee->localAddress = $request->get('localAddress');
    $employee->permanentAddress = $request->get('permanentAddress');
    $employee->emailAddress = $request->get('emailAddress');
    $employee->mobileNumber = $request->get('mobileNumber');
    $employee->email = $request->get('email');
    $employee->department = $request->get('department');
    $employee->designation = $request->get('designation');
    $employee->save();

    return redirect('addemployee')->with('Success', 'Data Inserted Successfully!');

}

}

p >


2 commentaires

Veuillez partager votre classe de modèle d'employé, afin que nous puissions vérifier cela aussi


ceci est mon application d'espace de noms de classe de modèle d'employé code ; utilisez Illuminate \ Database \ Eloquent \ Model; utilisez Jenssegers \ Mongodb \ Eloquent \ Model comme Eloquent; La classe Employé étend Eloquent {protected $ connection = 'mongodb'; protected $ collection = 'employé'; protected $ fillable = ['firstName', 'middleName', 'lastName', 'gender', 'city', 'localAddress', 'parmanentAddress', 'emailAddress', 'mobileNumber', 'email', 'department', ' la désignation']; }


3 Réponses :


0
votes

Dans votre modèle, vous avez écrit protected $ collection au lieu de protected $ table .

Au fait, c'est probablement pas de lien avec votre erreur, mais vous a écrit parmanentAddress au lieu de permanentAddress dans votre propriété $ fillable . Cela peut générer une autre erreur puisque vous mettez également à jour ce champ dans votre contrôleur.

Modèle d'employé fixe

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;

class Employee extends Eloquent
{
    protected $connection = 'mongodb';

    protected $table = 'employee';

    protected $fillable = [
        'firstName',
        'middleName',
        'lastName',
        'gender',
        'city',
        'localAddress',
        'permanentAddress',
        'emailAddress',
        'mobileNumber',
        'email',
        'department',
        'designation'
    ]; 
}


3 commentaires

Merci d'avoir attiré mon attention sur mon erreur d'orthographe, mais ce n'est pas important maintenant, et j'utilise MongoDB donc il doit s'agir de $ collection et non de $ table. @ P.Ellul


Oups, je n'ai pas réalisé que vous étendiez autre chose que le modèle d'origine.


Montre que tu connais la réponse. je m'excuse pour cela.



1
votes

Assurez-vous

  • la collection existe dans la base de données
  • Votre modèle étend Jenssegers \ Mongodb \ Eloquent \ Model et non Model

    utilisez Jenssegers \ Mongodb \ Eloquent \ Model comme Eloquent;

    La classe Node étend Eloquent { }


0 commentaires

0
votes

Cela devrait résoudre le problème si vous utilisez le package jenssegers / laravel-mongodb :

Dans config / auth , assurez-vous que la valeur de model est correctement définie si vous n'utilisez pas l'emplacement du modèle User par défaut: p>

use Jenssegers\Mongodb\Auth\User as Authenticatable;
...
class User extends Authenticatable implements JWTSubject { ... }

Ensuite, votre classe de modèle User doit étendre correctement Authenticable (à partir du package):

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User\User::class,
    ],

Si tout le reste (garde, etc.) a été configuré correctement selon la documentation, cela devrait fonctionner sans aucun problème.


0 commentaires