سلام
آیا امکانش هست route model binding رو جوری پیاده کرد که با دو تا فیلد کار کنه مثلا id و slug
کنترلر های من از نوع resource هست
@hesammousavi
@ali.bayat
@Alimotreb
@mhyeganeh
@eniack
هر مدل الکوئنت در لاراول میتونه یک کلید اصلی رو برای Route Model Binding استفاده کنه
که با متد getRouteKeyName داخل هر مدل قابل تعریف کردنه
هر چند برای حالت های خاص یه متد resolveRouteBinding هم داریم که به شکل زیر استفاده میشه:
/**
* Retrieve the model for a bound value.
*
* @param mixed $value
* @param string|null $field
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function resolveRouteBinding($value, $field = null)
{
return $this->where('name', $value)->firstOrFail();
}
کاری که میتونی بکنی اینه که داخل متد boot سرویس پروایدر RouteServiceProvider بری یک Route رو مشخصا bind کنی:
Route::bind('modelName', function($value) {
return Post::where('slug', $value)
->orWhere(function($query) use ($value) {
if (is_numeric($value)) {
$query->where('id', $value);
}
})->firstOrFail();
});
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟