<?php
//есть роут
Route:: get ( 'orders/{order}' , 'OrderController@show' ) ;
//часть контроллера
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Order;
//!!!-Вопрос-!!!
//суть вопроса вот в чем - в метод show я передаю как зависимость класс Order, который ларавел сразу реализует как объект $order, модель таблицы 'orders'
//и в метод возвращается $order уже выбранная по id из таблицы 'orders', id берется из маршрута 'orders/{order}'.
//по какому правилу, и где это оговаривается, что когджа я делаю иньекцию класса в метод, то ларавел в этой инъекции стандартно создает объект , который ищется по идексу в таблице, который идет параметром в роуте?
class OrderController extends Controller
{
public function show( Order $order ) //тут $order уже именно выбранный из таблицы по индексу id, кторый берется из параметра в роуте.
{
return view
( 'auth.orders.show' , compact ( 'order' ) ) ; }
//...
}
//модель Order - в ней ничего особого
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\
Mail ; use App\
Mail \OrderCreated
;
class Order extends Model
{
//...
}
PD9waHAKCi8v0LXRgdGC0Ywg0YDQvtGD0YIKUm91dGU6OmdldCgnb3JkZXJzL3tvcmRlcn0nLCAnT3JkZXJDb250cm9sbGVyQHNob3cnKTsKCi8v0YfQsNGB0YLRjCDQutC+0L3RgtGA0L7Qu9C70LXRgNCwCm5hbWVzcGFjZSBBcHBcSHR0cFxDb250cm9sbGVyc1xBZG1pbjsKdXNlIEFwcFxIdHRwXENvbnRyb2xsZXJzXENvbnRyb2xsZXI7CnVzZSBBcHBcTW9kZWxzXE9yZGVyOwoKLy8hISEt0JLQvtC/0YDQvtGBLSEhIQovL9GB0YPRgtGMINCy0L7Qv9GA0L7RgdCwINCy0L7RgiDQsiDRh9C10LwgLSDQsiDQvNC10YLQvtC0IHNob3cg0Y8g0L/QtdGA0LXQtNCw0Y4g0LrQsNC6INC30LDQstC40YHQuNC80L7RgdGC0Ywg0LrQu9Cw0YHRgSBPcmRlciwg0LrQvtGC0L7RgNGL0Lkg0LvQsNGA0LDQstC10Lsg0YHRgNCw0LfRgyDRgNC10LDQu9C40LfRg9C10YIg0LrQsNC6INC+0LHRitC10LrRgiAkb3JkZXIsINC80L7QtNC10LvRjCDRgtCw0LHQu9C40YbRiyAnb3JkZXJzJwovL9C4INCyINC80LXRgtC+0LQg0LLQvtC30LLRgNCw0YnQsNC10YLRgdGPICRvcmRlciDRg9C20LUg0LLRi9Cx0YDQsNC90L3QsNGPINC/0L4gaWQg0LjQtyDRgtCw0LHQu9C40YbRiyAnb3JkZXJzJywgaWQg0LHQtdGA0LXRgtGB0Y8g0LjQtyDQvNCw0YDRiNGA0YPRgtCwICdvcmRlcnMve29yZGVyfScuCi8v0L/QviDQutCw0LrQvtC80YMg0L/RgNCw0LLQuNC70YMsINC4INCz0LTQtSDRjdGC0L4g0L7Qs9C+0LLQsNGA0LjQstCw0LXRgtGB0Y8sINGH0YLQviDQutC+0LPQtNC20LAg0Y8g0LTQtdC70LDRjiDQuNC90YzQtdC60YbQuNGOINC60LvQsNGB0YHQsCDQsiDQvNC10YLQvtC0LCDRgtC+INC70LDRgNCw0LLQtdC7INCyINGN0YLQvtC5INC40L3RitC10LrRhtC40Lgg0YHRgtCw0L3QtNCw0YDRgtC90L4g0YHQvtC30LTQsNC10YIg0L7QsdGK0LXQutGCICwg0LrQvtGC0L7RgNGL0Lkg0LjRidC10YLRgdGPINC/0L4g0LjQtNC10LrRgdGDINCyINGC0LDQsdC70LjRhtC1LCDQutC+0YLQvtGA0YvQuSDQuNC00LXRgiDQv9Cw0YDQsNC80LXRgtGA0L7QvCDQsiDRgNC+0YPRgtC1PwoKY2xhc3MgT3JkZXJDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gc2hvdyhPcmRlciAkb3JkZXIpIC8v0YLRg9GCICRvcmRlciDRg9C20LUg0LjQvNC10L3QvdC+INCy0YvQsdGA0LDQvdC90YvQuSDQuNC3INGC0LDQsdC70LjRhtGLINC/0L4g0LjQvdC00LXQutGB0YMgaWQsINC60YLQvtGA0YvQuSDQsdC10YDQtdGC0YHRjyDQuNC3INC/0LDRgNCw0LzQtdGC0YDQsCDQsiDRgNC+0YPRgtC1LgogICAgeyAgIAogICAgICAgIHJldHVybiB2aWV3KCdhdXRoLm9yZGVycy5zaG93JywgY29tcGFjdCgnb3JkZXInKSk7CiAgICB9CgogICAgLy8uLi4KfQoKLy/QvNC+0LTQtdC70YwgT3JkZXIgLSDQsiDQvdC10Lkg0L3QuNGH0LXQs9C+INC+0YHQvtCx0L7Qs9C+Cm5hbWVzcGFjZSBBcHBcTW9kZWxzOwp1c2UgSWxsdW1pbmF0ZVxEYXRhYmFzZVxFbG9xdWVudFxNb2RlbDsKdXNlIElsbHVtaW5hdGVcU3VwcG9ydFxGYWNhZGVzXFNjaGVtYTsKdXNlIElsbHVtaW5hdGVcU3VwcG9ydFxGYWNhZGVzXE1haWw7CnVzZSBBcHBcTWFpbFxPcmRlckNyZWF0ZWQ7CgpjbGFzcyBPcmRlciBleHRlbmRzIE1vZGVsCnsKICAgIC8vLi4uCn0=