Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Découvrez le framework PHP Laravel

    11 mai 2017 à 20:41:06

    Bonjour,

    j'ai résolu le problème par mettre les droits d'accès du fichier storage/logs/laravel.log à 775.

    sujet résolu.

    merci à tous

    • Partager sur Facebook
    • Partager sur Twitter
    Votre réponse est mon progrès.
      16 mai 2017 à 17:30:18

      Bonjour,

      comment résoudre le problème de sauvegarder un formulaire à chaque refrech de la page dans laravel 5.4?

      -------------

      Après une validation d'un formulaire, le sauvegarde des données dans une BDD s'effectue très bien. mais après rafraîchir la page, le sauvegarde s'effectue une autre fois.

      comment effectuer une seule sauvegarde dans la BDD malgré plusieurs refretch de la page?

      merci

      • Partager sur Facebook
      • Partager sur Twitter
      Votre réponse est mon progrès.
        29 juin 2017 à 19:23:32

        Salut, est-il possible de créer avec Laravel une API telle que celle de PayPal et l'intégrer dans plusieurs site? si oui, est-il possible d'avoir un tuto me permettant d'acquerir les connaissance pour mettre sur pied une API robuste avec Laravel?

        bien à vous

        • Partager sur Facebook
        • Partager sur Twitter
          30 juin 2017 à 1:55:55

          Bonsoir,

          On peut tout faire avec Laravel, y compris des API. A ma connaissance le meilleur support est le bouquin Build APIs You Won't Hate. C'est en anglais mais c'est vraiment très complet.

          • Partager sur Facebook
          • Partager sur Twitter
            6 juillet 2017 à 4:24:34

            Bonjour à vous, j'ai une erreur que je n'arrive pas a résoudre, en réalité j'ai installer le package Dingo pour la réalisation d'une API, mais cela ne marche pas.

            j'ai lancer l'installation du package

            je l'ai enregistrer dans le config/app.php

                    /*
                     * Application Service Providers...
                     */
                    App\Providers\AppServiceProvider::class,
                    App\Providers\AuthServiceProvider::class,
                    App\Providers\EventServiceProvider::class,
                    App\Providers\RouteServiceProvider::class,
                    // Dingo laravel service provider....
                    Dingo\Api\Provider\LaravelServiceProvider::class
            

            puis la configuration du fichier config/api.php

            <?php
            
            
            return [
            
                /*
                |--------------------------------------------------------------------------
                | Standards Tree
                |--------------------------------------------------------------------------
                |
                | Versioning an API with Dingo revolves around content negotiation and
                | custom MIME types. A custom type will belong to one of three
                | standards trees, the Vendor tree (vnd), the Personal tree
                | (prs), and the Unregistered tree (x).
                |
                | By default the Unregistered tree (x) is used, however, should you wish
                | to you can register your type with the IANA. For more details:
                | https://tools.ietf.org/html/rfc6838
                |
                */
            
                'standardsTree' => env('API_STANDARDS_TREE', 'vnd'),
            
                /*
                |--------------------------------------------------------------------------
                | API Subtype
                |--------------------------------------------------------------------------
                |
                | Your subtype will follow the standards tree you use when used in the
                | "Accept" header to negotiate the content type and version.
                |
                | For example: Accept: application/x.SUBTYPE.v1+json
                |
                */
            
                'subtype' => env('API_SUBTYPE', 'trackye'),
            
                /*
                |--------------------------------------------------------------------------
                | Default API Version
                |--------------------------------------------------------------------------
                |
                | This is the default version when strict mode is disabled and your API
                | is accessed via a web browser. It's also used as the default version
                | when generating your APIs documentation.
                |
                */
            
                'version' => env('API_VERSION', 'v1'),
            
                /*
                |--------------------------------------------------------------------------
                | Default API Prefix
                |--------------------------------------------------------------------------
                |
                | A default prefix to use for your API routes so you don't have to
                | specify it for each group.
                |
                */
            
                'prefix' => env('API_PREFIX', null),
            
                /*
                |--------------------------------------------------------------------------
                | Default API Domain
                |--------------------------------------------------------------------------
                |
                | A default domain to use for your API routes so you don't have to
                | specify it for each group.
                |
                */
            
                'domain' => env('API_DOMAIN', 'api.trackye.com'),
            
                /*
                |--------------------------------------------------------------------------
                | Name
                |--------------------------------------------------------------------------
                |
                | When documenting your API using the API Blueprint syntax you can
                | configure a default name to avoid having to manually specify
                | one when using the command.
                |
                */
            
                'name' => env('API_NAME', 'trackye_api'),
            
                /*
                |--------------------------------------------------------------------------
                | Conditional Requests
                |--------------------------------------------------------------------------
                |
                | Globally enable conditional requests so that an ETag header is added to
                | any successful response. Subsequent requests will perform a check and
                | will return a 304 Not Modified. This can also be enabled or disabled
                | on certain groups or routes.
                |
                */
            
                'conditionalRequest' => env('API_CONDITIONAL_REQUEST', true),
            
                /*
                |--------------------------------------------------------------------------
                | Strict Mode
                |--------------------------------------------------------------------------
                |
                | Enabling strict mode will require clients to send a valid Accept header
                | with every request. This also voids the default API version, meaning
                | your API will not be browsable via a web browser.
                |
                */
            
                'strict' => env('API_STRICT', false),
            
                /*
                |--------------------------------------------------------------------------
                | Debug Mode
                |--------------------------------------------------------------------------
                |
                | Enabling debug mode will result in error responses caused by thrown
                | exceptions to have a "debug" key that will be populated with
                | more detailed information on the exception.
                |
                */
            
                'debug' => env('API_DEBUG', true),
            
                /*
                |--------------------------------------------------------------------------
                | Generic Error Format
                |--------------------------------------------------------------------------
                |
                | When some HTTP exceptions are not caught and dealt with the API will
                | generate a generic error response in the format provided. Any
                | keys that aren't replaced with corresponding values will be
                | removed from the final response.
                |
                */
            
                'errorFormat' => [
                    'message' => ':message',
                    'errors' => ':errors',
                    'code' => ':code',
                    'status_code' => ':status_code',
                    'debug' => ':debug',
                ],
            
                /*
                |--------------------------------------------------------------------------
                | API Middleware
                |--------------------------------------------------------------------------
                |
                | Middleware that will be applied globally to all API requests.
                |
                */
            
                'middleware' => [
            
                ],
            
                /*
                |--------------------------------------------------------------------------
                | Authentication Providers
                |--------------------------------------------------------------------------
                |
                | The authentication providers that should be used when attempting to
                | authenticate an incoming API request.
                |
                */
            
                'auth' => [
            
                ],
            
                /*
                |--------------------------------------------------------------------------
                | Throttling / Rate Limiting
                |--------------------------------------------------------------------------
                |
                | Consumers of your API can be limited to the amount of requests they can
                | make. You can create your own throttles or simply change the default
                | throttles.
                |
                */
            
                'throttling' => [
            
                ],
            
                /*
                |--------------------------------------------------------------------------
                | Response Transformer
                |--------------------------------------------------------------------------
                |
                | Responses can be transformed so that they are easier to format. By
                | default a Fractal transformer will be used to transform any
                | responses prior to formatting. You can easily replace
                | this with your own transformer.
                |
                */
            
                'transformer' => env('API_TRANSFORMER', Dingo\Api\Transformer\Adapter\Fractal::class),
            
                /*
                |--------------------------------------------------------------------------
                | Response Formats
                |--------------------------------------------------------------------------
                |
                | Responses can be returned in multiple formats by registering different
                | response formatters. You can also customize an existing response
                | formatter.
                |
                */
            
                'defaultFormat' => env('API_DEFAULT_FORMAT', 'json'),
            
                'formats' => [
            
                    'json' => Dingo\Api\Http\Response\Format\Json::class,
            
                ],
            
            ];
            


            le fichier de routes 

            <?php
            
            /*
            |--------------------------------------------------------------------------
            | Application Routes
            |--------------------------------------------------------------------------
            |
            | Here is where you can register all of the routes for an application.
            | It's a breeze. Simply tell Laravel the URIs it should respond to
            | and give it the controller to call when that URI is requested.
            |
            */
            
            $api = app('Dingo\Api\Routing\Router');
            
            Route::get('/', function () {
                return view('welcome');
            });
            
            $api->version('v1', function($api){
                $api->get('hello', 'App\Http\Controllers\HomeController@index');
            });
            //dump($api);
            //die();
            

            mon controller

            class HomeController extends Controller
            {
                /**
                 * Display a listing of the resource.
                 *
                 * @return \Illuminate\Http\Response
                 */
                public function index() {
                    return 'hello';
                }
            

            Mais je reçois cette erreur lorsque je lance l'url: localhost:8000/hello

            Sorry, the page you are looking for could not be found.
            
            NotFoundHttpException in RouteCollection.php line 161:

            comment faire? mais avant j'ai tapez la commande artisan serve. pour utiliser l'url localhost:8000/ qui lui marche bien et me dirige à la page Welcome mais parcontre lorsque je fait un localhost:8000/api/hello, cela me donne l'erreur ci-dessus




            -
            Edité par king-kong 7 juillet 2017 à 8:39:39

            • Partager sur Facebook
            • Partager sur Twitter
              7 juillet 2017 à 16:28:37

              Bonjour,

              J'essaye de faire l'exemple du formulaire dans la première partie du cours Découvrer le framework PHP avec laravel. Cependant, je fais exactement comme l'enseignant et je ne comprend pas pourquoi j'obtiens cette erreur.

              J'ai essayé plusieurs façon, en utilisant blade ou non en prenant la façon originale du formulaire ou non. Cependant ça ne fonctionne toujours pas.

              Voici mon code :

              infos.blade.php

              @extends('template')
              
              @section('contenu')
                  {!! Form::open(['url' => 'users']) !!}
               
                          {!! Form::label('nom' , 'Entrez votre nom') !!}
               
                          {!! Form::text('nom' ) !!}
               
                          {!! Form::open('Envoyer') !!}
               
                  {!! Form::close() !!}
              @endsection




              template.blade.php

              <html>
                  <head>
                      <meta charset="UTF-8">
                      <title></title>
                  </head>
                  <body>
                      @yield('contenu')
                  </body>
              </html>

              Aussi, lorsque j'essaye de faire afficher la page de l'activité 1, j'obtiens toujours un message d'erreur. Je n'arrive pas a faire afficher les sondages. 

              Voici le message d'erreur :


              J'aimerais bien pouvoir continuer le cours.

              Merci d'avance pour votre aide.

              -
              Edité par MagalieLanthier 7 juillet 2017 à 16:52:04

              • Partager sur Facebook
              • Partager sur Twitter
                12 juillet 2017 à 19:29:22

                MagalieLanthier a écrit:

                Bonjour,

                J'essaye de faire l'exemple du formulaire dans la première partie du cours Découvrer le framework PHP avec laravel. Cependant, je fais exactement comme l'enseignant et je ne comprend pas pourquoi j'obtiens cette erreur.


                infos.blade.php

                @extends('template')
                
                @section('contenu')
                    {!! Form::open(['url' => 'users']) !!}
                 
                            {!! Form::label('nom' , 'Entrez votre nom') !!}
                 
                            {!! Form::text('nom' ) !!}
                 
                            {!! Form::open('Envoyer') !!}
                 
                    {!! Form::close() !!}
                @endsection




                template.blade.php

                <html>
                    <head>
                        <meta charset="UTF-8">
                        <title></title>
                    </head>
                    <body>
                        @yield('contenu')
                    </body>
                </html>

                Aussi, lorsque j'essaye de faire afficher la page de l'activité 1, j'obtiens toujours un message d'erreur. Je n'arrive pas a faire afficher les sondages. 

                Voici le message d'erreur :


                J'aimerais bien pouvoir continuer le cours.

                Merci d'avance pour votre aide.

                -
                Edité par MagalieLanthier 7 juillet 2017 à 16:52:04


                Bonjour Magalie,

                Je pense queton formulaire infos.blade.php devrait être plutot écrit comme cela:

                @extends('template')
                
                @section('contenu')
                    {!! Form::open(['url' => 'users']) !!}
                 
                            {!! Form::label('nom' , 'Entrez votre nom') !!}
                            {!! Form::text('nom' ) !!}
                            {!! Form::submit('Envoyer') !!}
                 
                    {!! Form::close() !!}
                @endsection


                Jazz77

                -
                Edité par pascal.j 12 juillet 2017 à 19:33:19

                • Partager sur Facebook
                • Partager sur Twitter
                  27 juillet 2017 à 10:10:10

                  Bonjour tout le monde,

                  Je suis actuellement le cours laravel sur openclassroom. Je suis arrivé à l'activité créer un site de sondage. Je télécharge le zip pour faire l'exercice, je remarque qu'il manque le dossier "vendor".  

                  cette url: http://localhost/partie1_exo/public/sondage       , me retourne l'erreur suivante:

                  Que dois_je faire ?

                  ( ! )Warning: require(C:\wamp64\www\partie1_exo\bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in C:\wamp64\www\partie1_exo\bootstrap\autoload.php on line17
                  Call Stack
                  #TimeMemoryFunctionLocation
                  1 0.0009 240200 {main}( ) ...\index.php:0
                  2 0.0018 243152 require('C:\wamp64\www\partie1_exo\bootstrap\autoload.php') ...\index.php:22
                  ( ! )Fatal error: require(): Failed opening required 'C:\wamp64\www\partie1_exo\bootstrap/../vendor/autoload.php' (include_path='.;C:\php\pear') in C:\wamp64\www\partie1_exo\bootstrap\autoload.php on line17
                  Call Stack
                  #TimeMemoryFunctionLocation
                  1 0.0009 240200 {main}( ) ...\index.php:0
                  2 0.0018 243152 require('C:\wamp64\www\partie1_exo\bootstrap\autoload.php') ...\index.php:22
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 juillet 2017 à 10:20:13

                    Salut, tu dois lancer la commande : composer install :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                    "S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." - Les Shadoks
                      28 juillet 2017 à 7:58:35

                      bonjour, j'aimerais insérer les données d'un formulaire d'article mais ce dernier imbrique le formulaire d'image, autrement dit j'aimerais que, lors de la validation du formulaire que l'id de l'image s'insère dans la table article et que les données de l'image s'insère dans la table image. voici mon code 

                      Mon PostController::store

                          public function store(Request $request){
                              
                              $formInput = $request->except('image');
                              $image = new \App\Models\Image();
                              if(Auth::check()){
                                  $user_id = Auth::user()->id;  
                              } 
                              //validate
                              $this->validate($request, [
                                  'title' => 'required',
                                  'content' => 'required',
                                  'image' => 'image|mimes:png,jpg,jpeg,zip,rar|max:10000'
                              ]);
                              //upload image
                              $image = $request->image_id;
                              if($image){
                                  $imageName = $image->getClientOriginalName();
                                  $image->move('images', $imageName);
                                  $formInput['image'] = $imageName;
                              }
                              
                              
                              $article = Post::create([
                                  'title' => $request->title,
                                  'content' => $request->content,
                                  'category_id' => $request->category_id,
                                  'competence_id' => $request->competence_id,
                                  'user_id' => $user_id,
                                  'slug' => $this->random(16), 
                                  'publication' => true,
                                  'image_id' => $image->id,
                              ]);
                              
                              $image->article()->save($article);
                              
                              return redirect()->route('post.index');        
                          }

                      Mon formulaire de création d'article

                                  {!! Form::open(['route' => 'post.store', 'method' => 'POST', 'files' => true, 'data-parsley-validate'=>'']) !!}
                      
                                  <div class="form-group">
                                      {{ Form::label('title', 'title') }}
                                      {{ Form::text('title', null, array('class' => 'form-control','required'=>'','minlength'=>'5')) }}
                                  </div>
                      
                                  <div class="form-group">
                                      {{ Form::label('content', 'Contenu') }}
                                      {{ Form::text('content', null, array('class' => 'form-control')) }}
                                  </div>
                                  
                                  <div class="form-group hidden">
                                      {{ Form::label('content', 'Contenu') }}
                                      {{ Form::text('user_id', null, array('type' => 'hidden')) }}
                                  </div>            
                      
                                  <div class="form-group">
                                      {{ Form::label('category_id', 'Categories') }}
                                      {{ Form::select('category_id', $categories, null, ['class' => 'form-control','placeholder'=>'Select Category']) }}
                                  </div>
                      
                                  <div class="form-group">
                                      {{ Form::label('competence_id', 'Competence') }}
                                      {{ Form::select('competence_id', $competences, null, ['size' => '1','multiple' => 'multiple', 'class' => 'form-control','placeholder'=>'Select Category']) }}
                                  </div>
                                  
                                  
                                  <div class="form-group">
                                      {{ Form::label('image', 'Image') }}
                                      {{ Form::file('image',array('class' => 'form-control')) }}
                                  </div>
                      
                                   {{ Form::submit('Create', array('class' => 'btn btn-default')) }}
                                  {!! Form::close() !!}
                      
                              </div>

                      Mon modele Image

                      namespace App\Models;
                      
                      use Illuminate\Database\Eloquent\Model;
                      
                      class Image extends Model {
                          protected $fillable = [
                              'url',
                          ];
                      
                          public function user(){
                              return $this->hasOne(User::class); 
                          }    
                          
                          public function article(){
                              return $this->hasOne(Post::class);  
                          }    
                          
                          public function product(){
                              return $this->hasOne(Product::class);  
                          }    
                      }

                      Mon Model Post

                      <?php
                      
                      namespace App\Models;
                      
                      use Illuminate\Database\Eloquent\Model;
                      
                      class Post extends Model {
                          protected $fillable = ['title','slug','content','publication', 'counts_comment' ,'category_id', 'user_id', 'image_id'];
                      
                          public static function boot() {
                              parent::boot();
                              self::created(function ($post){
                                  $post->counts_comment = 0;
                              });
                              self::deleted(function ($post){
                                  $comments = $post->comments;
                                  foreach ($comments as $comment){
                                      $comment->delete();
                                  }
                              });        
                              return true;
                          }    
                          
                          public function user() {
                              return $this->belongsTo(User::class);    
                          }    
                          
                          public function comments() {
                              return $this->hasMany(Comment::class); 
                          }  
                          
                          public function competences() {
                              return $this->belongsToMany(Competence::class, 'post_competence' )->withPivot('niveau'); 
                          }    
                          
                          public function category() {
                              return $this->belongsTo(Category::class);   
                          }        
                          
                          public function image(){
                              return $this->belongsTo(Image::class); 
                          }        


                      j'ai ce message 

                      (1/1) ErrorException
                      Trying to get property of non-object
                      in PostController.php (line 71)
                      at HandleExceptions->handleError(8, 'Trying to get property of non-object', 'C:\\laragon\\www\\Project\\app\\Http\\Controllers\\Admin\\PostController.php', 71, array('request' => object(Request), 'formInput' => array('_token' => 'EsEncJV7Ux0gGxTSuKQzEy0IbL9ViA58xscvTaKk', 'title' => 'sjhbmkfgjhbmshsmfhsg', 'content' => 'mflgjhkmhjmthkjmty', 'user_id' => null, 'category_id' => '2', 'competence_id' => '1'), 'image' => null, 'user_id' => 4))
                      in PostController.php (line 71)





                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 juillet 2017 à 8:06:19

                        Salut, tu sors d'où la propriété image_id car je ne l'ai pas vu dans le formulaire, dis moi si je me trompe et ensuite je te conseillerai d'upload l'image et à la place d'avoir image_id dans l'entité, tu devrais mettre image_path par exemple avec le chemin de l'image ce sera mieux par la suite tu verras, si tu comptes faire un site qui transfère beaucoup d'image tu devras toutefois revoir ce processus.
                        • Partager sur Facebook
                        • Partager sur Twitter
                        "S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." - Les Shadoks
                          28 juillet 2017 à 8:12:52

                          salut j'ai changer la propriété image en image_id et cela me donne toujours la même erreur
                          • Partager sur Facebook
                          • Partager sur Twitter
                            28 juillet 2017 à 19:25:01

                            Bonjour,

                            je suis le tuto Laravel 5, j'en suis au chapitre sur ajax. J'ai installé la version 5.4.

                            Tout fonctionne comme prévu, sauf le logout ! Quand je clique sur le nom du user (à l'intérieur du lien qui porte la classe dropdown toggle), le dropdown menu ne se déplie pas !

                            Pour que cela fonctionne je suis obligée de commenter dans le layout app.blade.php le script 'bootstrap.min.js' ...

                            Par avance, merci de votre aide !

                            Voici mon code :

                            <!DOCTYPE html>
                            <html lang="{{ app()->getLocale() }}">
                            <head>
                                <meta charset="utf-8">
                                <meta http-equiv="X-UA-Compatible" content="IE=edge">
                                <meta name="viewport" content="width=device-width, initial-scale=1">
                            
                                <!-- CSRF Token -->
                                <meta name="csrf-token" content="{{ csrf_token() }}">
                            
                                <title>{{ config('app.name', 'Laravel') }}</title>
                            
                                <!-- Styles -->
                                <link href="{{ asset('css/app.css') }}" rel="stylesheet">
                                <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
                              
                            
                            </head>
                            <body>
                                <div id="app">
                                    <nav class="navbar navbar-default navbar-static-top">
                                        <div class="container">
                                            <div class="navbar-header">
                            
                                                <!-- Collapsed Hamburger -->
                                                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
                                                    <span class="sr-only">Toggle Navigation</span>
                                                    <span class="icon-bar"></span>
                                                    <span class="icon-bar"></span>
                                                    <span class="icon-bar"></span>
                                                </button>
                            
                                                <!-- Branding Image -->
                                                <a class="navbar-brand" href="{{ url('/') }}">
                                                    {{ config('app.name', 'Laravel') }}
                                                </a>
                                            </div>
                            
                                            <div class="collapse navbar-collapse" id="app-navbar-collapse">
                                                <!-- Left Side Of Navbar -->
                                                <ul class="nav navbar-nav">
                                                    &nbsp;
                                                </ul>
                            
                                                <!-- Right Side Of Navbar -->
                                                <ul class="nav navbar-nav navbar-right">
                                                    <!-- Authentication Links -->
                                                    @if (Auth::guest())
                                                        <li><a href="{{ route('login') }}">Login</a></li>
                                                        <!--li><a href="{{ route('register') }}">Register</a></li-->
                                                    @else
                                                        <li class="dropdown">
                                                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                                                                {{ Auth::user()->name }} <span class="caret"></span>
                                                            </a>
                            
                                                            <ul class="dropdown-menu" role="menu">
                                                                <li>
                                                                    <a href="{{ route('logout') }}"
                                                                        onclick="event.preventDefault();
                                                                                 document.getElementById('logout-form').submit();">
                                                                        Logout
                                                                    </a>
                            
                                                                    <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                                                                        {{ csrf_field() }}
                                                                    </form>
                                                                </li>
                                                            </ul>
                                                        </li>
                                                    @endif
                                                </ul>
                                            </div>
                                        </div>
                                    </nav>
                            
                                    @yield('content')
                                </div>
                            
                                <!-- Scripts -->
                            
                                <script src="{{ asset('js/app.js') }}"></script>
                            
                                
                                <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
                                <!-- je dois commenter cette ligne pour pouvoir me déconnecter ! -->
                                <!--script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script-->
                            
                               
                                
                                @yield('scripts')
                            
                            
                            </body>
                            </html>
                            



                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 juillet 2017 à 10:14:13

                              Bonjour,

                              Le cours doit être suivi en utilisant la version 5.2 sinon il y a des incompatibilités.

                              Une version 5.3 existe sur mon blog mais elle n'est pas validante.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                30 juillet 2017 à 15:32:04

                                Bonjour je suis entrain de réaliser un site d'ecommerce des templates, mais je suis bloquer à un niveau, je ne sais pas comment implémenter un système de demo. à savoir que lorsque l'on veut payer un template, que l'on ai la possibilité de voir la demo de ce template, ou l'acheter directement, mais lorsque l'on visite ça demo que l'on ait la possibilité de payer cette demo en la visitant. Exemple le fonctionnement du site suivant https://wrapbootstrap.com.  la question est-ce chaque demo est intégrer dans le site à la main ou alors on upload ce template via l'application pour que chaque session soit unique et identifiable, ainsi on peut garder l'id du produit dans une session et pouvoir l'utiliser dans lors de la navigation de la demo afin d'effectuer le payement pendant la navigation de la demo. Mais ce système je ne vois pas comment pouvoir implémenter cela avec laravel et tout autre langage d'ailleurs.

                                Si quelqu'un pourrais m'indiquer comment faire ou plus encore à un lien qui montre comment le faire étape par étape. se serait un plaisir.

                                merci à vous d'avance 

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  3 août 2017 à 2:46:25

                                  Salut, je suis sur le tuto laravel, et j'ai un problème avec l'update des données du tuto, il ne fait aucune mise à jour. Voici mon code

                                  voici mes routes:

                                  //route affichage des données d'un utilisateur
                                  Route::get('/user/{id}', 'UpdatePasswordController@show')->name('show.user');
                                  //route affichage du formulaire d'édition
                                  Route::get('/user/{id}/edit', 'UpdatePasswordController@edit')->name('edit.user');
                                  //route de modification du formulaire d'édition
                                  Route::put('/user/{id}', 'UpdatePasswordController@updateUser')->name('update.user');

                                  les méthodes du controller

                                      public function show($id){
                                          $user = $this->userRepository->getById($id);
                                  
                                          return view('auth.profil',  compact('user'));
                                      }
                                  
                                      public function edit($id) {
                                          $user = $this->userRepository->getById($id);
                                  
                                          return view('auth.edit',  compact('user'));
                                      }
                                  
                                      public function updateUser(UserUpdateRequest $request, $id){
                                          $this->userRepository->update($id, $request->all());
                                  
                                          return redirect('home')->withOk("L'utilisateur " . $request->input('name') . " a été modifié.");
                                      }    

                                  Mon repository user

                                  class UserRepository {
                                      protected $user;
                                  
                                      public function __construct(User $user) {
                                          $this->user = $user;
                                      }
                                  
                                      private function save(User $user, Array $inputs) {
                                          $user->name = $inputs['name'];
                                          $user->email = $inputs['email'];	
                                          $user->admin = isset($inputs['admin']);
                                  
                                          $user->save();
                                      }
                                  
                                      public function getPaginate($n) {
                                          return $this->user->paginate($n);
                                      }
                                  
                                      public function store(Array $inputs) {
                                          $user = new $this->user;		
                                          $user->password = bcrypt($inputs['password']);
                                  
                                          $this->save($user, $inputs);
                                  
                                          return $user;
                                      }
                                  
                                      public function getById($id) {
                                          return $this->user->findOrFail($id);
                                      }
                                  
                                      public function update($id, Array $inputs) {
                                          $this->save($this->getById($id), $inputs);
                                      }
                                  
                                      public function destroy($id) {
                                          $this->getById($id)->delete();
                                      }
                                  }

                                  Ma classe de validation

                                  class UserUpdateRequest extends FormRequest
                                  {
                                      /**
                                       * Determine if the user is authorized to make this request.
                                       *
                                       * @return bool
                                       */
                                      public function authorize()
                                      {
                                          return true;
                                      }
                                  
                                      /**
                                       * Get the validation rules that apply to the request.
                                       *
                                       * @return array
                                       */
                                      public function rules() {
                                          $id = $this->user;
                                          return [
                                                  'name' => 'required|max:255|unique:users,name,',
                                                  'email' => 'required|email|max:255|unique:users,email,' 
                                          ];
                                      }
                                  }

                                  Ma vue de formulaire

                                  <div class="container">
                                      <div class="row">
                                          <div class="col-md-8 col-md-offset-2">
                                              <div class="panel panel-default">
                                                  <div class="panel-heading">Reset Password</div>
                                  
                                                  <div class="panel-body">
                                                      @if (session('status'))
                                                          <div class="alert alert-success">
                                                              {{ session('status') }}
                                                          </div>
                                                      @endif
                                  
                                                          {!! Form::model($user, ['route' => ['update.user', $user->id], 'method' => 'put', 'class' => 'form-horizontal panel']) !!}
                                                              <div class="form-group {!! $errors->has('name') ? 'has-error' : '' !!}">
                                                                      {!! Form::text('name', null, ['class' => 'form-control', 'placeholder' => 'Nom']) !!}
                                                                      {!! $errors->first('name', '<small class="help-block">:message</small>') !!}
                                                              </div>
                                                              <div class="form-group {!! $errors->has('email') ? 'has-error' : '' !!}">
                                                                      {!! Form::email('email', null, ['class' => 'form-control', 'placeholder' => 'Email']) !!}
                                                                      {!! $errors->first('email', '<small class="help-block">:message</small>') !!}
                                                              </div>
                                                              <div class="form-group hidden">
                                                                  <div class="checkbox">
                                                                      <label>
                                                                          {!! Form::checkbox('admin', 1, null) !!} Administrateur
                                                                      </label>
                                                                  </div>
                                                              </div>
                                                              {!! Form::submit('Envoyer', ['class' => 'btn btn-primary pull-right']) !!}
                                                          {!! Form::close() !!}
                                                  </div>
                                              </div>
                                          </div>
                                      </div>
                                  </div>

                                  je n'arrive pas a voir pourquoi cela ne marche pas de plus cela ne me renvoi aucune erreurs



                                  merci  d'avance pour vos réactions

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    13 août 2017 à 8:03:10

                                    Bonjour,

                                    dans le chapitre "migrations et modèles" tout est très clair, cependant j'ai du mal à comprendre, la syntaxe : new $this->email.

                                    Ce code se trouve dans le repository EmailRepository, classe de gestion de notre modèle email, plus précisément dans la méthode save.

                                    Dans le repository on utilise dans le constructeur l'injection de dépendance, donc $this->email est une instance de notre modèle.

                                    Pourquoi faire un new devant un objet déjà instancié ??? Je suis perplexe, si quelqu'un a compris je veux bien qu'il m'éclaire !

                                    <?php
                                    
                                    namespace App\Repositories;
                                    
                                    use App\Email;
                                    
                                    class EmailRepository implements EmailRepositoryInterface
                                    {
                                    
                                        protected $email;
                                    
                                    	public function __construct(Email $email)
                                    	{
                                    		$this->email = $email;
                                    	}
                                    
                                    	public function save($mail)
                                    	{
                                    		$email = new $this->email;
                                    		$email->email = $mail;
                                    		$email->save();
                                    	}
                                    
                                    }




                                    -
                                    Edité par flo_sdz2013 13 août 2017 à 8:06:29

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 août 2017 à 14:54:17

                                      Bonjour,

                                      C'est effectivement un redondant, je corrigerai.

                                      Cordialement

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        18 août 2017 à 17:49:15

                                        Bonjour,

                                        je suis en train d'étudier l'exemple fourni dans le chapitre 3 sur les événements (@bestmomo : merci pour cet exemple très complet). Je me rends compte que je n'ai pas très bien compris les middlewares. Je prends un exemple, et je vous déroule ce que j'ai compris, dites moi ou je bugue, svp !

                                        Je suis loguée en tant que simple user. J'ai réagi à un article en soumettant un commentaire. Je souhaite maintenant le supprimer. La suppression se passe comme prévu. Dans le code, cette action correspond à la route comment.destroy. Pourtant, quand je regarde dans le constructeur de la classe CommentController, je ne devrais pas pouvoir réaliser cette action. Voici ce que je comprends :

                                        Quand la requête est envoyée, le premier middleware, admin est appelé, comme ma méthode est dans le tableau des exceptions, la requête continue et rencontre le deuxième middleware 'auth', comme je suis authentifiée et que ma méthode est bien dans le tableau, la requête n'est pas stoppée et atteint le dernier middleware et là ... je bloque ... ma requête est une requête ajax ... et elle ne figure pas dans le tableau ... elle devrait donc être blackboulée ??? Non ? J'ai râté un truc ???

                                        public function __construct(
                                        		CommentRepository $comment_gestion)
                                        	{
                                        		$this->comment_gestion = $comment_gestion;
                                        
                                        		$this->middleware('admin', ['except' => ['store', 'edit', 'update', 'destroy']]);
                                        		$this->middleware('auth', ['only' => ['store', 'update', 'destroy']]);
                                        		$this->middleware('ajax', ['only' => ['updateSeen', 'update', 'valid']]);
                                        	}



                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          18 août 2017 à 18:03:29

                                          Salut,

                                          C'est bien une requête en Ajax mais comme la méthode visée n'est pas dans la liste on ne tient pas compte de ce middleware et ça va au bout.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            21 août 2017 à 8:08:43

                                            Merci pour ces explications ! J'étais partie bille en tête avec l'idée que la méthode destroy() devait forcément passer par tous les middlewares.

                                            -
                                            Edité par flo_sdz2013 21 août 2017 à 8:33:39

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              26 août 2017 à 15:04:07

                                              Bonjour, Svp je suis bloqué dans l'exo 1 voila le probleme est deja posé/résolu mais pas de solution : https://openclassrooms.com/forum/sujet/laravel-probleme-pour-debuter-l-exo-1


                                              Mooc:Découvrez le framework PHP Laravel. Le tout premier exercice à la fin de la première partie (les bases de laravel)

                                              -
                                              Edité par AchrafAmal 26 août 2017 à 16:29:08

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                3 septembre 2017 à 13:17:55

                                                Bonjour,

                                                Je suis le tuto avec laravel 5.2

                                                Lors de l'envoi d'email j'ai le message suivant

                                                ErrorException in StreamBuffer.php line 94:
                                                 
                                                stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
                                                error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

                                                dans mon .env j'ai :

                                                MAIL_DRIVER=smtp
                                                MAIL_HOST=smtp.free.fr
                                                MAIL_PORT=587
                                                MAIL_USERNAME=monuser@free.fr
                                                MAIL_PASSWORD=_motdepasse
                                                MAIL_ENCRYPTION=tls

                                                et dans config/mail.php j'ai :

                                                'from' => ['address' => 'monuser@free.fr', 'name' => 'Administrateur'],

                                                Je ne vois pas bien d'ou cela pourrait provenir cette histoire de certificat

                                                merci d'avance pour vos suggestions

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  3 septembre 2017 à 13:40:24

                                                  Bonjour,

                                                  Corrige cette ligne :

                                                  MAIL_ENCRYPTION=null



                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    3 septembre 2017 à 14:58:42

                                                    Merci à toi bestmomo.

                                                    L'envoi d'email fonctionne impeccable


                                                    -
                                                    Edité par pascal.j 3 septembre 2017 à 15:18:31

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      12 septembre 2017 à 13:40:28

                                                      Bonjour,

                                                      Je suis le tuto en laravel 5.2

                                                      Je suis au chapitre Query builder

                                                      J'ai crée la migration pour les livres sans problème.

                                                      Par contre je rencontre un soucis sur la partie population

                                                       php artisan db:seed
                                                      
                                                      
                                                        [Symfony\Component\Debug\Exception\FatalThrowableError]
                                                        Class 'App\Editeur' not found
                                                      

                                                      J'ai remplacé le code de ModelFactory.php par

                                                      <?php
                                                      $factory->define(App\Editeur::class, function (Faker\Generator $faker) {
                                                          return [
                                                              'nom' => $faker->name,
                                                          ];
                                                      });
                                                      
                                                      $factory->define(App\Auteur::class, function (Faker\Generator $faker) {
                                                          return [
                                                              'nom' => $faker->name,
                                                          ];
                                                      });
                                                      
                                                      $factory->define(App\Livre::class, function (Faker\Generator $faker) {
                                                          return [
                                                              'titre' => $faker->sentence(3),
                                                              'description' => $faker->text,
                                                              'editeur_id' => $faker->numberBetween(1, 40),
                                                          ];
                                                      });

                                                      et dans DatabaseSeeder.php j'ai

                                                      <?php
                                                      
                                                      use Illuminate\Database\Seeder;
                                                      use Faker\Factory;
                                                      
                                                      class DatabaseSeeder extends Seeder {
                                                      
                                                          /**
                                                           * Run the database seeds.
                                                           *
                                                           * @return void
                                                           */
                                                          public function run()
                                                          {
                                                              factory(App\Editeur::class, 40)->create();
                                                              factory(App\Auteur::class, 40)->create();
                                                              factory(App\Livre::class, 80)->create();
                                                      
                                                              for ($i = 1; $i < 41; $i++) {
                                                                  $number = rand(2, 8);
                                                                  for ($j = 1; $j <= $number; $j++) {
                                                                      DB::table('auteur_livre')->insert([
                                                                          'livre_id' => rand(1, 40),
                                                                          'auteur_id' => $i
                                                                      ]);
                                                                  }
                                                              }
                                                      
                                                          }
                                                      
                                                      }

                                                      JE ne vois pas ce qui bloque php artisan db:seed

                                                      Merci d'avance



                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        12 septembre 2017 à 14:04:00

                                                        Salut,

                                                        Essaie comme ça : \App\Editeur

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          12 septembre 2017 à 18:51:22

                                                          Merci à toi Bestmomo.

                                                          En fait,  j'avais oublié de faire auparavant un :

                                                          php artisan make:model Editeur
                                                          

                                                          bonne soirée

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            23 septembre 2017 à 13:05:43

                                                            Bonjour, 

                                                            Je viens de démarrer ce coura avec une version Laravel 5.4

                                                            A la leçon migrations et modèles j'ai une erreur : App\Repositories\EmailRepositoryInterface] is not instantiable. quand j'essaie d'iutiliser l'interface EmailRepositoryInterface.


                                                            J'ai checké les fautes d'orthorgraphe mais je n'en trouve pas. Tout est OK quand j'insta,,cie la classe (deuxième option) mais pas quand j'instancie l'interface. 


                                                            Merci

                                                            Alain 

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            MOOC Découvrez le framework PHP Laravel

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown