title: Customizing Route Key Name not working
body: <p>I'd like model binding to use a table column other than <code>id</code> when retrieving a given model, and I override <code>getKeyName</code> in Model class (<code>Service</code> in this case) but it's not working!  </p>
  
  <pre><code>class Service extends Model{
     //override
     public function getRouteKey() {
         return 'key';
     }
  }
  </code></pre>
  
  <p>Service table:  </p>
  
  <pre><code>id  |  key(string,unique)  |  name(string)
  </code></pre>
  
  <p>my routes file:</p>
  
  <pre><code>Route::resource('services', 'ServiceController');
  </code></pre>
  
  <p>and in <code>ServiceController</code>:</p>
  
  <pre><code>public function show(Service $service) {
      return $service;
  }
  </code></pre>
  
  <p>but when I go to <code>mysiteurl.com/services/vps</code> it shows the 404 page.<br>
  (<code>mysiteurl.com/services/1</code> works but I don't want to use id column in URL)  </p>
  
  <p><a href="https://laravel.com/docs/5.3/routing#route-model-binding" rel="noreferrer">Laravel docs</a></p>