Laravel 未定义变量控制器
Laravel undefined variable Controller
我的 BusinessController 问题已经存在很长时间了。不这样写的东西是不可能理解的。请帮我改正错误;我觉得我做了很多)
我的问题:
我的数据库business_table.php
class BusinessTable extends Migration
{
public function up()
{
Schema::create('businesses', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('mail');
$table->string('web-site');
$table->timestamps();
});
}
public function down()
{
Schema::drop('business');
}
}
我的控制器: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 store()
{
return view('/business');
}
public function create()
{
return view('business.create');
}
public function store()
{
$business = new Business();
$business->title = request()->input('title');
$business->description = request()->input('description');
$business->save();
return redirect('/business');
}
}
我的模特:Business.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Business extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'business';
}
我的查看文件:business.blade.php
@extends('layouts.layout')
@section('title')Бізнес@endsection
@section ('main_content')
<h1>Бизнес</h1>
<p>
@foreach ($business as $singleBusiness)
<li>{{ $singleBusiness->title}}</li>>
@endforeach
</p>
@endsection
我的创作business.blade.php:
<p>It works</p>
<form method="post" action="/business">
{{ csrf_field() }}
<div>
<input type="text" name="title" value="" placeholder="title">
</div>
<div>
<textarea type="text" name="description" value="" placeholder="description"></textarea>
</div>
<div>
<button type="sumbit">Sumbit</button>
</div>
</form>
我的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('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
我的MainController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MainController extends Controller
{
public function welcome()
{
return view('/welcome');
}
public function users()
{
return view('users');
}
}
my problem image
你必须添加路线
Route::get('/business', 'App\Http\Controllers\BusinessController@index');
您没有使用索引方法调用业务控制器,它通过了:
return view('business', compact('business'));
企业对企业的观点。
更新
删除导致冲突的路由:
Route::get('/business', 'App\Http\Controllers\MainController@business');
对于每条路径(如“/business”)和动词(如 get/post),只应存在一条路线。
更新 2
天哪,你的 BusinessController 中有 2 个存储函数,删除一个。
作为您的使用
Route::get('/business','App\Http\Controllers\MainController@business');
在你的MainController.php
public function business()
{
$business = \App\Models\Business::all();
return view('business', compact('business'));
}
这里你错过了提供 $business
数据和加载 business.blade.php
我的 BusinessController 问题已经存在很长时间了。不这样写的东西是不可能理解的。请帮我改正错误;我觉得我做了很多)
我的问题:
我的数据库business_table.php
class BusinessTable extends Migration
{
public function up()
{
Schema::create('businesses', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('mail');
$table->string('web-site');
$table->timestamps();
});
}
public function down()
{
Schema::drop('business');
}
}
我的控制器: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 store()
{
return view('/business');
}
public function create()
{
return view('business.create');
}
public function store()
{
$business = new Business();
$business->title = request()->input('title');
$business->description = request()->input('description');
$business->save();
return redirect('/business');
}
}
我的模特:Business.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Business extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'business';
}
我的查看文件:business.blade.php
@extends('layouts.layout')
@section('title')Бізнес@endsection
@section ('main_content')
<h1>Бизнес</h1>
<p>
@foreach ($business as $singleBusiness)
<li>{{ $singleBusiness->title}}</li>>
@endforeach
</p>
@endsection
我的创作business.blade.php:
<p>It works</p>
<form method="post" action="/business">
{{ csrf_field() }}
<div>
<input type="text" name="title" value="" placeholder="title">
</div>
<div>
<textarea type="text" name="description" value="" placeholder="description"></textarea>
</div>
<div>
<button type="sumbit">Sumbit</button>
</div>
</form>
我的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('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
我的MainController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MainController extends Controller
{
public function welcome()
{
return view('/welcome');
}
public function users()
{
return view('users');
}
}
my problem image
你必须添加路线
Route::get('/business', 'App\Http\Controllers\BusinessController@index');
您没有使用索引方法调用业务控制器,它通过了:
return view('business', compact('business'));
企业对企业的观点。
更新
删除导致冲突的路由:
Route::get('/business', 'App\Http\Controllers\MainController@business');
对于每条路径(如“/business”)和动词(如 get/post),只应存在一条路线。
更新 2
天哪,你的 BusinessController 中有 2 个存储函数,删除一个。
作为您的使用
Route::get('/business','App\Http\Controllers\MainController@business');
在你的MainController.php
public function business()
{
$business = \App\Models\Business::all();
return view('business', compact('business'));
}
这里你错过了提供 $business
数据和加载 business.blade.php