Я новичок в 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 и т. д., Но здесь, похоже, это не работает должным образом, может кто-нибудь сказать мне, что я делаю не так?
ПОПРОБУЙ ЭТО
Модель
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 таблицы и назначить переменные каждому столбцу, поэтому я сделал это с помощью запроса
Вы можете использовать существующий метод
Product::find($id)
.