我用 laravel 5.8 开发了一个站点,我想使用 slugs 而不是 id。我知道我有两个表服务和类型服务。服务键在服务类型表中是外来的。
我按服务类型检索和显示服务。但在我的网址上显示了类型 ID。
我有这个错误
缺少 [Route: service] [URI: service/{slug}] 的必需参数。(查看: C:\laragon\www\elbi\resources\views\layouts\partial\nav.blade.php) (查看: C:\laragon\www\elbi\resources\views\layouts\partial\nav.blade. php)
表格:
public function up()
{
Schema::create('services', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->timestamps();
});
}
public function up()
{
Schema::create('type_services', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedBigInteger('service_id');
$table->foreign('service_id')->references('id')->on('services')->onDelete('cascade');
$table->string('name');
$table->text('description');
$table->string('image');
$table->timestamps();
});
}
楷模
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Service extends Model
{
public function typeservice()
{
return $this->hasMany('App\Typeservice');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class TypeService extends Model
{
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function service()
{
return $this->belongsTo('App\Service');
}
public function getRouteKeyName()
{
return 'slug';
}
}
显示控制器
public function index()
{
$contacts = Contact::all();
$abouts = About::all();
$services = Service::with('typeservice')->orderBy('name','asc')->get();
$typeservices =TypeService::all();
$makings = Making::all();
$realisations = Realisation::all();
$addresses = Address::all();
return view('index',compact('contacts','services','abouts','typeservices','makings','realisations','addresses'));
}
小唯快跑啊
慕森卡