попробуйте
Вид лезвия
@foreach ($post as $p)
{{$p->user->name }}
@endforeach
Контроллер
public function main_page(){
$post= Post::with('user')->latest()->get();
return view('main' , compact('post') );
}
Модель post
public function user(){
$this->belongsTo('App\User');
}
Несколько вещей, которые вам нужно сделать
Пример кода для возврата информации из запрос:
OraclePreparedStatement pstmt = (OraclePreparedStatement)conn.prepareStatement(
"delete from tab1 where age < ? returning name into ?");
pstmt.setInt(1,18);
/** register returned parameter
* in this case the maximum size of name is 100 chars
*/
pstmt.registerReturnParameter(2, OracleTypes.VARCHAR, 100);
// process the DML returning statement
count = pstmt.executeUpdate();
if (count>0)
{
ResultSet rset = pstmt.getReturnResultSet(); //rest is not null and not empty
while(rset.next())
{
String name = rset.getString(1);
...
}
}
Подробнее о расширениях JDBC в Oracle:
Попытаться использовать? вместо: rowid0 на Вашей строке SQL. У меня были проблемы прежде с именованными параметрами и Oracle.
Не знайте, применяется ли это или не, так как Вы не указываете, какую версию Вы используете.
Из метассылки Oracle:
Причина
В 10.1.0.x не поддерживается драйвер JDBC, возвращая DML:
На FAQ JDBC: "10.1.0 (10 г r1) DML Возвращается Поддерживаемый? Не в формирователях тока. Однако у нас действительно есть планы поддерживать его в сообщении 10.1.0 драйвера. Мы действительно имеем в виду это на этот раз".
Поскольку код приложения пытается использовать неподдерживаемые функции JDBC, ошибки повышены.
Решение
Обновите драйвер JDBC до 10.2.0.x, потому что на FAQ 10.2.0.x драйверы JDBC действительно поддерживают пункт возврата:
"10.2.0 (10 г r2) DML Возвращается Поддерживаемый? ДА! И самое время. См. Руководство разработчика для деталей".
ОТРЕДАКТИРУЙТЕ Только для усмешек, можно проверить, что версия Oracle JDBC думает, что использует с:
// Create Oracle DatabaseMetaData object
DatabaseMetaData meta = conn.getMetaData();
// gets driver info:
System.out.println("JDBC driver version is " + meta.getDriverVersion());
Если это показывает драйвер 10.2.0.x JDBC или позже, то я вне идей, и возможно запрос поддержки оракулу в порядке...
Обычно вы не хотите делать базу данных кода зависимой. Вместо OraclePreparedStatement вы должны использовать CallableStatement.
CallableStatement statement = connection.prepareCall("{call INSERT INTO tableA (some_id) VALUES (1) RETURNING ROWID INTO ? }");
statement.registerOutParameter( 1, Types.VARCHAR );
int updateCount = statement.executeUpdate();
if (updateCount > 0) {
return statement.getString(1);
}