如何解决创建页面以更改刀片中表中的数据时出错
我创建了一个页面来实现更改表中数据的功能,在我完成视频教程中的所有操作后,我不知何故无法运行此页面,这是错误的文本:
Undefined variable: business
(我还是附上了错误截图) https://i.stack.imgur.com/vs7Wj.png
我的控制器“BusinessController.PHP”:
<?PHP
namespace App\Http\Controllers;
use \App\Models\Business;
use Illuminate\Http\Request;
class BusinessController extends Controller
{
public function index()
{
$business = \App\Models\Business::all();
return view('business',compact('business'));
}
public function createbusiness()
{
return view('/createbusiness');
}
public function create()
{
return view('business.create');
}
function delete($idd)
{
\DB::table('business')->where('idd',$idd)->delete();
return redirect ('/business');
}
public function edit_function($idd)
{
\DB::select('select * from business where id = ?',[$idd]);
return view ('/update',['business'=>$business]);
}
public function store()
{
$business = new Business();
$business->idd = request('idd');
$business->name = request('name');
$business->mail = request('mail');
$business->website = request('website');
$business->save();
return redirect('/business');
}
}
我的路线“web.PHP”:
<?PHP
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/welcome','App\Http\Controllers\MainController@welcome');
Route::get('/users','App\Http\Controllers\MainController@users');
Route::get('/business','App\Http\Controllers\BusinessController@index');
Route::post('/business','App\Http\Controllers\BusinessController@store');
Route::get('/projects','App\Http\Controllers\ProjectsController@index');
Route::post('/projects','App\Http\Controllers\ProjectsController@store');
Route::get('/projects/create','App\Http\Controllers\ProjectsController@create');
Route::get('/business/create','App\Http\Controllers\BusinessController@createbusiness');
Auth::routes();
Route::get('/delete/{idd}','App\Http\Controllers\BusinessController@delete');
Route::get('click_edit/{idd}','App\Http\Controllers\BusinessController@edit_function');
Route::get('/home',[App\Http\Controllers\HomeController::class,'index'])->name('home');
@extends('layouts.layout')
@section('title')Бізнес@endsection
@section ('main_content')
<h1>Бизнес</h1>
<p>
<table class="table table-dark">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Name</th>
<th scope="col">Mail</th>
<th scope="col">Website</th>
<th scope="col">Edit</th>
<th scope="col">Delete</th>
</tr>
</thead>
<tbody>
@foreach ($business as $singleBusiness)
<tr>
<th scope="row">{{ $singleBusiness->idd}}</th>
<td>{{ $singleBusiness->name}}</td>
<td>{{ $singleBusiness->mail}}</td>
<td>{{ $singleBusiness->website}}</td>
<td><a href="/click_edit/{{ $singleBusiness->idd }}">
<button class="btn btn-success">Edit</button></a></td>
<td><a href="/delete/{{ $singleBusiness->idd }}">
<button class="btn btn-danger btn-delete">Delete</button></a></td>
</tr>
@endforeach
</tbody>
</table>
<a class="col-4 btn btn-outline-warning mr-3" href="/business/create">Додати Бізнес</a>
</p>
@endsection
我对更新数据函数“update.blade.PHP”的看法:
@extends('layouts.layout')
@section('title')Головна сторінка@endsection
@section ('main_content')
<h1>Update info</h1>
<div class="container">
<div class="jumbotron">
<form action="/update/{{ $business[0]->idd }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<label>Business Name</label>
<input type="text" class="form-control" name="name" id="name" value="{{$business[0]->name}}" aria-describedby="emailHelp" placeholder="Enter new Business Name">
</div>
<div class="form-group">
<label>Business Name</label>
<input type="text" class="form-control" name="name" id="name" value="{{$business[0]->mail}}" aria-describedby="emailHelp" placeholder="Enter new Business Name">
</div>
<div class="form-group">
<label>Business Name</label>
<input type="text" class="form-control" name="name" id="name" value="{{$business[0]->website}}" aria-describedby="emailHelp" placeholder="Enter new Business Name">
</div>
<button type="submit" name="sumbit" class="btn btn-danger" style="width: 50%;">Update Data</button>
@endsection
解决方法
正如@El_Vanja 已经写的那样,错误是您的 edit_function
。在那里变量 $business
没有被定义,而是被使用;
public function edit_function($idd)
{
\DB::select('select * from business where id = ?',[$idd]);
// Here you use $business,but never declared it before
return view ('/update',['business'=>$business]);
}
您可以做的是将 DB::select
的返回值传递给变量 $business
。
$business = \DB::select('select * from business where id = ?',[$idd]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。