Laravel5.8 je ne peut pas stocker les données de mon serveur sql

Je suis en train d'ouvrir page profil de l'utilisateur, mais je ne peut pas insérer des données dans mysql serveur.

Je ne peux pas le comprendre et résoudre ce problème.

J'ai de index.blade.php dans mon dossier de profil, et à partir de l'index de la page, aller à create.blade.php .

When I enter the submit button, my page redirects to index.blade.php, but in mysql server, nothing is recorded.

web.php

Route::prefix('user')->group(function(){
    Route::resource('profile', 'UserController');
});

create.blade.php

<form action="{{route('profile.store')}}" method="POST">@csrf

                    <ul class="information">
                        <li>Name :<br>
                            <input type="text" class="name" name="name">
                        </li><br>
                        <li>Gender :<br>
                            <div class="gender">
                                <select name="gender" id="" name="gender">
                                    <option class="option" value="" selected="selected">Select Gender</option>
                                    <option value="male" >Male</option> 
                                    <option value="female" class="selected">Female</option> 
                                    <option value="any">Any</option> 
                                </select>       
                            </div>
                        </li>   
                        <li>Country :<br>
                            <div class="country">
                                <select name="country" id="" name="country">
                                    <option value="" selected="selected">Select Country</option> 
                                    <option value="United States" class="selected">United States</option> 
                                    <option value="United Kingdom">United Kingdom</option>      
                                </select>
                            </div>    
                        </li><br>
                        <li>Birthday :<br>
                            <input type="text" class="birthday" id="bod" name="bod">
                        </li><br>
                        <li>User Description :<br>
                            <textarea name="description" id="" cols="60" rows="10"></textarea></li>
                    </ul>
                    <button type="submit" class="saveBtn">Save</button>
                </div>
            </form>
            </div>

UserController.php

public function index()
    {
        return view('profile.index');
    }

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

public function store(Request $request) {

        $user_id = auth()->user()->id;

        Profile::where('user_id',$user_id)->update([
            'name'=>request('name'),
            'gender'=>request('gender'),
            'country'=>request('country'),
            'bod'=>request('bod'),
            'description'=>request('description')
        ]);

        return redirect()->route('profile.index');
    }

Profile.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model
{
    protected $fillable = [
        'user_id','name', 'gender', 'country', 'bod', 'description'
    ];
}
+2
2019-09-18 09:15:10
source
6 réponses

Je pense que c'est ce que vous me demandez; il utilise juste la méthode pour le calcul d'un arbre de hauteur sur les sous-arbres, par opposition à l'appel d'une méthode de calcul de l' arbitraire de l'arbre de la hauteur sur les sous-arbres.

int height() {
    if (!root)
    {
        return 0;
    }
    else
    {
        int lheight = root->left  ? root->left.height()  : 0;
        int rheight = root->right ? root->right.height() : 0;
        return lheight > rheight ? lheight + 1 : rheight + 1;
    }
}

Mise à jour: Comme @Gupta souligne, TreeNode n'ont pas de height méthode. Je dirais qu'il devrait, mais cela ne signifie pas que cette solution soit moins incorrect.

Voici une version qui peut être ajouté à TreeNode:

int height() {
    int lheight = left ? left.height() : 0;
    int rheight = right ? ight.height() : 0;
    return std::max(lheight, rheight) + 1;
}
+1
2019-09-18 09:27:47

Même si c'est moins succincte, vous pouvez ré-écrire la méthode itérative à l'aide d'une pile explicite:

int height() {
    std::stack<std::pair<TreeNode *, int> > node_stack;
    node_stack.push(std::make_pair(root, 1));
    int height = 0;

    while (!node_stack.empty()) {
        auto node = node_stack.top();
        node_stack.pop();

        if (node.first) {
            height = std::max(height, node.second);
            node_stack.push(std::make_pair(node.first->left, node.second + 1));
            node_stack.push(std::make_pair(node.first->right, node.second + 1));
        }
    }

    return height;
}
+1
2019-09-18 09:27:47

Répondre à la question sur son visage en valeur. Code suivant permettra de combiner les deux surcharges de height en un seul:

class BinaryTree {
    inline static const TreeNode sentinel;
...
public:
int height(const TreeNode* root_in = &sentinel) const {
    if (root_in == &sentinel)
        return height(root); 

    if (!root_in)
        return 0;

    int lheight = height(root_in->left);
    int rheight = height(root_in->right);

    return std::max(lheight, rheight) + 1;
}
+1
2019-09-18 09:27:47

regardez cet exemple, les données sont dans le dossier public/données

https://codesandbox.io/s/vue-template-ntkmh?fontsize=14

Edit Vue Template

+0
2019-09-18 09:28:01

vous pouvez annoter updatedBy et updatedDate champs par cette annotation pour spécifier le format de la date à laquelle vous l'envoyer

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
+1
2019-09-18 09:29:04

Vous ne devez pas spécifier claimRef, ce champ est généré automatiquement par l'Kubernetes contrôleurs. Au lieu de cela, vous devez utiliser les classes de stockage pour vos PersistentVolumes et PersistentVolumeClaims comme c'est le mécanisme utilisé pour faire correspondre entre eux. L'ajout de l' storageClassName: name champ à la fois votre PersistentVolumes et PersistentVolumeClaims devrait résoudre votre problème.

+0
2019-09-18 12:32:18

Voir d'autres questions sur les étiquettes