Laravel 从数据库输出单行
Laravel output single row from database
我是 Laravel 的初学者,我被卡住了:)
我正在为网站相当简单的客户构建一个简单的 CMS。
我已经为整个网站的所有文本创建了一个数据库,我希望能够对其进行编辑。所有 CRUD 都在工作,但我似乎无法使用 blade 将数据库中的内容输出到实际视图,因为我收到变量不存在的错误。
我以为我会做这样的事情{{ $text->"insert specific id" }}
我的 table 有 id 的字符串,用于在整个站点中识别相应的 text-content。
我有一个 MainController 和一个 TextController,这是处理 text-elements 的 CRUD 的那个。
我可能忘记了一件简单的事情,但我似乎无法解决。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Text;
use Session;
class TextController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$texts = Text::all();
return view('texts.index')->withTexts($texts);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, array(
'content' => 'required'
));
$text = new Text;
$text->content = $request->content;
$text->save();
return redirect()->route('texts.index');
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$text = Text::find($id);
return view('texts.edit')->withText($text);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$text = Text::find($id);
$this->validate($request, array(
'content' => 'required'
));
$text->content = $request->content;
$text->save();
Session::flash('success', 'Teksten blev ændret!');
return redirect()->route('texts.index');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
我认为我在 MainController 中遗漏了一些东西
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use Mail;
use Illuminate\Support\Facades\DB;
use Session;
use App\Text;
class MainController extends Controller
{
public function index(){
return view('index');
}
难道是?
提前致谢!
使用 with()
将内容闪烁到会话,而您需要将变量传递给视图
view('index', $data)
其中$data
是数据库中的数据。
在控制器中,您必须select要传递给视图的数据
$texts = Text::get(); //or Text::all(); for all results
$text = Text::find($id); //if you want one item get by ID
$text = Text::where('column', 'value')->first(); //first item matching condition
//然后在视图函数中作为第二个参数(数组)传给视图)
return view('index', ['texts' => $texts, 'text' => $text] /* or compact('texts', 'text') */);
//然后在视图中
@foreach($texts as $t)
{{$t->content}}
@endforeach
or
{{$text->content}}
public function index()
{
$texts = Text::all();
return view('texts.index', compact('texts'));
}
那么在你看来:
@foreach ($texts as $text)
{!! $text->content !!}
@endforeach
同时 compact() 接受一个数组。你可以这样做 compact(['first', 'second', 'third'])
我是 Laravel 的初学者,我被卡住了:)
我正在为网站相当简单的客户构建一个简单的 CMS。 我已经为整个网站的所有文本创建了一个数据库,我希望能够对其进行编辑。所有 CRUD 都在工作,但我似乎无法使用 blade 将数据库中的内容输出到实际视图,因为我收到变量不存在的错误。
我以为我会做这样的事情{{ $text->"insert specific id" }} 我的 table 有 id 的字符串,用于在整个站点中识别相应的 text-content。
我有一个 MainController 和一个 TextController,这是处理 text-elements 的 CRUD 的那个。
我可能忘记了一件简单的事情,但我似乎无法解决。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Text;
use Session;
class TextController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$texts = Text::all();
return view('texts.index')->withTexts($texts);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, array(
'content' => 'required'
));
$text = new Text;
$text->content = $request->content;
$text->save();
return redirect()->route('texts.index');
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$text = Text::find($id);
return view('texts.edit')->withText($text);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$text = Text::find($id);
$this->validate($request, array(
'content' => 'required'
));
$text->content = $request->content;
$text->save();
Session::flash('success', 'Teksten blev ændret!');
return redirect()->route('texts.index');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
我认为我在 MainController 中遗漏了一些东西
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use Mail;
use Illuminate\Support\Facades\DB;
use Session;
use App\Text;
class MainController extends Controller
{
public function index(){
return view('index');
}
难道是?
提前致谢!
使用 with()
将内容闪烁到会话,而您需要将变量传递给视图
view('index', $data)
其中$data
是数据库中的数据。
在控制器中,您必须select要传递给视图的数据
$texts = Text::get(); //or Text::all(); for all results
$text = Text::find($id); //if you want one item get by ID
$text = Text::where('column', 'value')->first(); //first item matching condition
//然后在视图函数中作为第二个参数(数组)传给视图)
return view('index', ['texts' => $texts, 'text' => $text] /* or compact('texts', 'text') */);
//然后在视图中
@foreach($texts as $t)
{{$t->content}}
@endforeach
or
{{$text->content}}
public function index()
{
$texts = Text::all();
return view('texts.index', compact('texts'));
}
那么在你看来:
@foreach ($texts as $text)
{!! $text->content !!}
@endforeach
同时 compact() 接受一个数组。你可以这样做 compact(['first', 'second', 'third'])