Laravel从数据库输出单行

时间:2017-03-31 12:18:27

标签: database laravel blade

我是Laravel的初学者,我被困住了。)

我正在为一个拥有相当简单网站的客户构建一个简单的CMS。 我已经为整个站点的所有文本创建了一个数据库,我希望能够编辑它。所有的CRUD都在工作,但我似乎无法将带有刀片的数据库中的内容输出到实际视图,因为我得到了变量不存在的错误。

我以为我会做这样的事情{{$ text->"插入特定的ID" }} 我的表格中包含id的字符串,用于标识网站中的相应文本内容。

我有一个MainController和一个TextController,它是处理文本元素的CRUD的那个。

我可能忘记了一件简单的事情,但我似乎无法解决这个问题。

155933 Obj 1.1686988e+014 Primal inf 3.7517663e+010 (20494)
Primal infeasible - objective value 1.1686988e+014
PrimalInfeasible objective 1.16869879e+014 - 155933 iterations time 1728.062 

}

我认为我在MainController

中遗漏了一些东西
<?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)
{
    //
}

可能是吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

使用view('index', $data) 向会话中闪现内容,而不是需要将变量传递给视图

$data

其中 Blank1Fragment fragment1 = new Blank1Fragment(); Blank2Fragment fragment2 = new Blank2Fragment(); Subbtn..setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(position==0) fragment1.function(); else if(position==1) fragment2.function(); } ); 是数据库中的数据。

答案 1 :(得分:0)

在控制器中,您必须选择要传递给视图的数据

$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}}

答案 2 :(得分:0)

public function index()
{
    $texts = Text::all();

    return view('texts.index', compact('texts'));
}

然后在你看来:

@foreach ($texts as $text)
     {!! $text->content !!}
@endforeach

也是compact()接受一个数组。你可以做这样的事情compact(['first', 'second', 'third'])