Php Laravel передает переменную от контроллера к модели

Я новичок в laravel, и мне здесь очень тяжело.

Итак, я пытаюсь передать {wildcard} в запрос к БД, который находится в модели.

Мой код

Модель

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;


class Product extends Model
{
    protected $table = "product";
    public $timestamps = false;

    public function scopeSingleProduct($id){
        $products = DB::select("SELECT * FROM product WHERE id = '$id'");

        return  $products;
    }

}

Контроллер

public function show($id){
      $product = Product::SingleProduct($id);

      return view('products.product',compact("product"));
} 

Вид

{{ $product }}

Итак, мой код в основном работает, если я установил $ id на статическое число в файле модели, например. 1,2,3,4 и т. д., Но здесь, похоже, это не работает должным образом, может кто-нибудь сказать мне, что я делаю не так?

Вы можете использовать существующий метод Product::find($id).

parker_codes 01.05.2018 14:38
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
742
1

Ответы 1

ПОПРОБУЙ ЭТО

Модель

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;


class Product extends Model
{
    protected $table = "product";
    public $timestamps = false;
    //create relationships, that's it, no need to write queries

}

Контроллер

public function show(Request $request){
      //$request->id is the product id, you can pass it through query string or by post
      if ($request->id>0){
        $product = Product::where('id', $request->id)->first();

        return view('products.product',compact("product"));
      }
} 

Вид

{{ $product }}

Я пробовал читать об отношениях, и я действительно запутался, поэтому я сделал это с помощью запроса, просто пытаясь кое-что изучить, и да, я знаю, что это работает так, но я опубликовал простую версию своего кода, я должен подключиться к ней 4 таблицы и назначить переменные каждому столбцу, поэтому я сделал это с помощью запроса

Frosty 01.05.2018 14:22

Другие вопросы по теме