fork download
  1. <?php
  2.  
  3. //есть роут
  4. Route::get('orders/{order}', 'OrderController@show');
  5.  
  6. //часть контроллера
  7. namespace App\Http\Controllers\Admin;
  8. use App\Http\Controllers\Controller;
  9. use App\Models\Order;
  10.  
  11. //!!!-Вопрос-!!!
  12. //суть вопроса вот в чем - в метод show я передаю как зависимость класс Order, который ларавел сразу реализует как объект $order, модель таблицы 'orders'
  13. //и в метод возвращается $order уже выбранная по id из таблицы 'orders', id берется из маршрута 'orders/{order}'.
  14. //по какому правилу, и где это оговаривается, что когджа я делаю иньекцию класса в метод, то ларавел в этой инъекции стандартно создает объект , который ищется по идексу в таблице, который идет параметром в роуте?
  15.  
  16. class OrderController extends Controller
  17. {
  18. public function show(Order $order) //тут $order уже именно выбранный из таблицы по индексу id, кторый берется из параметра в роуте.
  19. {
  20. return view('auth.orders.show', compact('order'));
  21. }
  22.  
  23. //...
  24. }
  25.  
  26. //модель Order - в ней ничего особого
  27. namespace App\Models;
  28. use Illuminate\Database\Eloquent\Model;
  29. use Illuminate\Support\Facades\Schema;
  30. use Illuminate\Support\Facades\Mail;
  31. use App\Mail\OrderCreated;
  32.  
  33. class Order extends Model
  34. {
  35. //...
  36. }
Runtime error #stdin #stdout #stderr 0.02s 24224KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
PHP Fatal error:  Namespace declaration statement has to be the very first statement or after any declare call in the script in /home/uuT7Jm/prog.php on line 7