#php #laravel #laravel-6.2
#php #laravel #laravel-6.2
Вопрос:
я хочу спросить, как добавить данные get из ProdukTable
as p_nama
в StockTable
? Вместо этого я использую Laravel 6.2. что мне делать?
Модель: AppProduk.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Produk extends Model
{
public $table = 'produk';
protected $primaryKey = 'pid';
protected $fillable = [
'pid',
'sku',
'p_nama',
'p_stock_min',
'p_stock',
'p_harga_beli',
'p_harga',
'status'
];
}
Контроллеры: AppHttpControllersProdukController.php
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppProduk;
use RealRashidSweetAlertFacadesAlert;
class ProdukController extends Controller
{
public function index()
{
$datas = Produk::paginate(5); // 5 record per pages, silahkan disesuaikan
return view('produk.list', compact('datas'));
}
public function create()
{
return view('produk.create');
}
public function store(Request $request)
{
$request->validate([
'sku' => 'required',
'p_nama' => 'required',
'p_stock_min' => 'required',
'p_stock' => 'required',
'p_harga_beli' => 'required',
'p_harga' => 'required',
'status' => 'required',
]);
$data = new Produk([
'sku' => $request->get('sku'),
'p_nama' => $request->get('p_nama'),
'p_stock_min' => $request->get('p_stock_min'),
'p_stock' => $request->get('p_stock'),
'p_harga_beli' => $request->get('p_harga_beli'),
'p_harga' => $request->get('p_harga'),
'status' => $request->get('status')
]);
$data->save();
Alert::success('Sukses', 'Produk berhasil ditambahkan!');
return redirect('/produk');
}
public function show($pid)
{
$data = Produk::find($pid);
return view('produk.view', compact('data'));
}
public function edit($pid)
{
$data = Produk::find($pid);
return view('produk.edit', compact('data'));
}
public function update(Request $request, $pid)
{
$request->validate([
'sku' => 'required',
'p_nama' => 'required',
'p_stock_min' => 'required',
'p_stock' => 'required',
'p_harga_beli' => 'required',
'p_harga' => 'required',
'status' => 'required',
]);
$data = Produk::find($pid);
$data->sku = $request->get('sku');
$data->p_nama = $request->get('p_nama');
$data->p_stock_min = $request->get('p_stock_min');
$data->p_stock = $request->get('p_stock');
$data->p_harga_beli = $request->get('p_harga_beli');
$data->p_harga = $request->get('p_harga');
$data->status = $request->get('status');
$data->save();
Alert::success('Diubah', 'Data Produk telah diupdate!');
return redirect('/produk');
}
public function delete($pid)
{
$data = Produk::find($pid);
return view('produk.delete', compact('data'));
}
public function destroy($pid)
{
$data = Produk::find($pid);
$data->delete();
Alert::success('Dihapus!', 'Data ini sudah dihapus!');
return redirect('/produk');
}
}
Модель: AppStock.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Stock extends Model
{
public $table = 'stock';
protected $primaryKey = 'sid';
protected $fillable = [
'sid',
'mesin',
'sku',
'p_nama',
'stock_min',
'stock',
'status'
];
}
Контроллеры: AppHttpControllersStockController.php
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppStock;
use AppProduk;
use RealRashidSweetAlertFacadesAlert;
class StockController extends Controller
{
public function index()
{
$datas = Stock::paginate(5); // 5 record per pages, silahkan disesuaikan
return view('stock.list', compact('datas'));
}
public function create()
{
return view('stock.create');
}
public function store(Request $request)
{
$request->validate([
'sid' => 'required',
'sku' => 'required',
'p_nama' => 'required',
'stock_min' => 'required',
'stock' => 'required',
'status' => 'required',
]);
$data = new Stock([
'sid' => $request->get('sid'),
'sku' => $request->get('sku'),
'p_nama' => $request->get('p_nama'),
'stock_min' => $request->get('stock_min'),
'stock' => $request->get('stock'),
'status' => $request->get('status')
]);
$data->save();
Alert::success('Sukses', 'Stock berhasil ditambahkan!');
return redirect('/stock');
}
public function show($sid)
{
$data = Stock::find($sid);
return view('stock.view', compact('data'));
}
public function edit($sid)
{
$data = Stock::find($sid);
return view('stock.edit', compact('data'));
}
public function update(Request $request, $sid)
{
$request->validate([
'sid' => 'required',
'mesin' => 'required',
'sku' => 'required',
'p_nama' => 'required',
'stock_min' => 'required',
'stock' => 'required',
'status' => 'required',
]);
$data = Stock::find($sid);
$data->mesin = $request->get('mesin');
$data->sid = $request->get('sid');
$data->sku = $request->get('sku');
$data->p_nama = $request->get('p_nama');
$data->stock_min = $request->get('stock_min');
$data->stock = $request->get('stock');
$data->status = $request->get('status');
$data->save();
Alert::success('Diubah', 'Data Stock telah diupdate!');
return redirect('/stock');
}
public function delete($sid)
{
$data = Stock::find($sid);
return view('stock.delete', compact('data'));
}
public function destroy($sid)
{
$data = Stock::find($sid);
$data->delete();
Alert::success('Dihapus!', 'Data ini sudah dihapus!');
return redirect('/stock');
}
}
AddStock.blade.php
@extends('layout.master')
@section('title', 'Tambah Stock')
@section('parentPageTitle', 'Stock')
@section('page-style')
<link rel="stylesheet" href="{{asset('assets/plugins/bootstrap-material-datetimepicker/css/bootstrap-material-datetimepicker.css')}}"/>
<link rel="stylesheet" href="{{asset('assets/plugins/bootstrap-select/css/bootstrap-select.css')}}"/>
@stop
@section('content')
@include('sweetalert::alert')
<div class="row clearfix">
<div class="col-sm-8 offset-sm-2">
<div class="card">
<div class="body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
<br />
@endif
<form method="post" action="{{ route('stock.store') }}">
@csrf
<div class="row clearfix">
<div class="col-sm-3">
<div class="form-group">
<label for="sku">SKU:</label>
<input type="text" class="form-control text-uppercase" name="sku" placeholder="SKU Barang" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="p_nama">Nama Barang:</label>
<input type="text" class="form-control text-uppercase" name="p_nama" placeholder="Nama Barang" />
<select class="form-control select2" name="p_name">
{{-- <!-- I want to add list from product table into here--> --}}
<option value="{{ $produk->id }}">{{ $produk>p_name }}</option>
{{-- <!-- I want to add list from product table into here--> --}}
</select>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label for="status">Status:</label>
<select name="status" id="status" class="form-control select2">
<option value="Aktif">Tersedia</option>
<option value="Menipis" color="red">Menipis</option>
<option value="Habis" color="red">Habis</option>
</select>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label for="p_stock_min">Minimal Stock:</label>
<input type="number" class="form-control" name="p_stock_min" placeholder="1000" />
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label for="p_stock">Stock Saat ini:</label>
<input type="number" class="form-control" name="p_stock" placeholder="1000" />
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label for="p_harga_beli">Harga Beli:</label>
<input type="number" class="form-control" name="p_harga_beli" placeholder="Tulis Nominalnya saja" />
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<label for="p_harga">Harga Jual:</label>
<input type="number" class="form-control" name="p_harga" placeholder="Tulis Nominalnya saja" />
</div>
</div>
<div class="col-sm-6">
<a href="{{ route('stock.index')}}" class="btn btn-default btn-lg"><i class="zmdi zmdi-undo"></i>amp;nbsp;Kembali</a>amp;nbsp;
<button type="submit" class="btn btn-success btn-lg"><i class="zmdi zmdi-check-circle"></i>amp;nbsp;Tambah</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('page-script')
<script src="{{asset('assets/plugins/momentjs/moment.js')}}"></script>
<script src="{{asset('assets/plugins/bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker.js')}}"></script>
<script src="{{asset('assets/js/pages/forms/basic-form-elements.js')}}"></script>
@stop
спасибо за любую помощь.
Комментарии:
1. не могли бы вы объяснить ситуацию, когда вы хотите добавить данные в эту другую модель, хотя вы можете сделать это с помощью отношений
2. Итак, на самом деле я хотел сделать view / stock ‘create.blade.php ` и «list.blade.php — внутри которого будет накрыт стол. Внутри таблицы я хочу вставить некоторые данные, которые существовали в
product
базе данных, например, столбец,p_name
иsku
я знаю, что в будущем необходимо использовать метод: Красноречивые отношения, но я не понял, как получить данные о продукте, которые содержатp_name
иsku
для того, чтобы вставить их в список просмотра таблицы, и создать запас с помощью select2форма
Ответ №1:
Предполагая, что вы хотите предоставить параметры выбора при создании и / или редактировании исходной записи. Вы можете передать Produk
список в представление с вашего контроллера.
public function create()
{
return view('stock.create', ['produks' => AppProduk::all()]);
}
public function edit($sid)
{
$data = Stock::find($sid);
$produks = AppProduk::all();
return view('stock.edit', compact('data', 'produks'));
}
Теперь $produks
она будет доступна в соответствующих представлениях, и вы можете заполнить выбранные параметры.
Комментарии:
1. Исключение ошибки Использование неопределенной константы p_name — предполагается ‘p_name’ (это вызовет ошибку в будущей версии PHP) (Просмотр: C:……..resourcesviewsstockcreate.blade.php )
2. <выберите class=»form-control select2″ name=»p_name»> @foreach($produks как $produks) <значение параметра=»{{ $produks-> pid }}»>{{ $produks>p_name }}</option> @endforeach </select>
3. Там опечатка, она должна быть
<option value="{{ $produk->id }}">{{ $produk->p_name }}</option>
, есть пропущенный$produk>p_name
4. @VhanzLulz Решает ли исправление опечатки вашу проблему?
5. боже, да, опечатка. итак, есть еще одна проблема, имя данных не отображается в списке prnt.sc/vnri8q