Php Laravel передает переменную от контроллера к модели - PullRequest
0 голосов
/ 01 мая 2018

Я очень новичок в 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 и т. Д., Но, похоже, что он не работает должным образом, кто-то может сказать мне, что я делаю неправильно?

1 Ответ

0 голосов
/ 01 мая 2018

ПОПРОБУЙТЕ

Модель

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"));
      }
} 

View

{{ $product }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...